2012-10-17 4 views
0

파일을 복사 한 다음 새 위치로 이동 한 심볼 링크를 복사 한 다음 작은 스크립트를 작성했습니다. 변수를 여러 번 사용하려면 변수를 사용하지만 파일에 공백이 있으면 모든 공백 앞에 '\'을 사용하더라도 일부 오류가 발생합니다. 다음은 내 코드입니다 : 나는 또한 함께 노력공백이있는 변수 문제

dest=~/Videos-win/file\ name\ with\ spaces 
src=~/Downloads/file\ name\ with\ spaces 

echo $dest ; 
cp -r $src $dest ; 
rm -R $src ; 
ln -s $dest $src ; 
echo 'done' 

'\\'('\'는 VAR에 추가). 또한 나에게 몇 가지 오류가 발생했습니다.

누구든지 내가 뭘 잘못하고 있는지 알 수 있습니까? TNX

답변

2

이 시도 :

dest="$HOME/Videos-win/file name with spaces" 
src="$HOME/Downloads/file name with spaces" 

echo "$dest" 
cp -r "$src" "$dest" 
rm -R "$src" 
ln -s "$dest" "$src" 
echo 'done' 

하십시오이 더 따옴표를 사용! 그들은 중요합니다. 또한 '"의 차이점과`. 큰 따옴표를 사용하여 http://mywiki.wooledge.org/Quoteshttp://wiki.bash-hackers.org/syntax/words

0

시도를 참조하십시오

cp -r "$src" "$dest" ; 

을 ...

1
귀하의 변수는 "간격"값을 가질 것이다, 그러나 그 공간은 상기 cp rm을 통해 전달됩니다

ln 명령

공백을 포함하여 전체 값이 단일 인수로 명령에 전달되도록 실제로 사용하는 변수 주위에 큰 따옴표를 넣으십시오.

시도 :

cp -r "$src" "$dest" 
rm -R "$src" 
ln -s "$dest" "$src" 

... 그리고 당신은 모든 세미콜론이 필요하지 않습니다 ...

관련 문제