2012-09-26 2 views
1

미리 정의 된 Chrome 북마크 세트를 Chrome에서 Mac에 보관하는 위치 (~/Library/Application Support/Google/Chrome/Default)로 복사하려면 쉘 스크립트를 사용하고 있습니다.Mac에서 공백이있는 파일 복사

#!/bin/sh 
bookmarks_dir="$HOME/Library/Application\ Support/Google/Chrome/Default" 
cp -v "bookmarks/Bookmarks" "$bookmarks_dir" 

을하지만이 프로그램을 실행할 때 내가 얻을 : 스크립트에서 나는이

cp: /Users/aparkin/Library/Application\ Support/Google/Chrome/Default: No such file or directory 

내가 &을 복사하면 위의 오류 메시지의 경로를 붙여 손으로 CP를 수행

cp -v bookmarks/Bookmarks /Users/aparkin/Library/Application\ Support/Google/Chrome/Default 

잘 복사되므로 디렉토리가 실제로 존재합니다. 그것은 물건을 위로 걷고있는 길의 공간 인 것처럼 보인다.

무엇이 누락 되었습니까? 변수가 따옴표로 묶여 있으면 파일 이름의 공백이 더 이상 문제를 일으키지 않을 것이라고 생각했습니다.

답변

3

$bookmarks_dir 정의에서 \을 제거하십시오. 글자 그대로 \으로 처리되고 있습니다. $echo bookmarks_dir을 읽었다면 그 내용을 볼 수 있습니다.

\은 문자열 주위에 따옴표를 넣지 않을 경우에만 유용합니다. 따라서

bookmarks_dir=$HOME/Library/Application\ Support/Google/Chrome/Default 

도 작동합니다.

+0

빙고, 그게 그 것이다. 고마워, 몇 분 안에 받아 들일거야. –

관련 문제