큰따옴표를 사용하여 복사된 파일에 액세스할 수 없습니다.

큰따옴표를 사용하여 복사된 파일에 액세스할 수 없습니다.

cp 명령을 사용하여 실수로 100개의 파일을 복사했습니다.

$ cp file1 "/data/ file1"
$ cp file2 "/data/ file2"

참고:- /data와 file2, file1 사이에 공백이 있습니다.

/data 디렉토리에서 파일을 볼 수 있지만 복사하거나 이동할 수는 없습니다. 이러한 파일에 액세스/복사/이동하는 동안 파일을 찾을 수 없음 오류가 발생합니다.

$ cd /data/ ; ls
file1 
file2
$ cp file1 /data1/
can not stat file1 

문제를 해결하는 방법.

답변1

당신이 사용할 수있는와일드카드문제와 일치하는 파일을 선택하세요. 예:

 for f in ./*file?
 do
   echo "[$f]"
 done

답변2

공백이 문제이므로 파일 참조에서 공백을 이스케이프 처리해야 합니다. 모든 파일을 한 번에 복구하려면(셸에 따라 다름 - 최소한 Bash에서는 작동함):

for FILE in /data1/" "* ; do mv "${FILE}" "${FILE# }" ; done

답변3

cp공백은 이제 파일 이름의 일부이므로 또는를 사용할 때 파일 이름에 공백을 포함 해야 합니다 mv.

mv " file1" /data1/

아니면 그 공간을 없애는 것이 더 좋습니다.

mv " file1" /data1/file1

모든 파일에 대해 이 작업을 한 번에 수행하려면 Perl 이름 바꾸기 도구를 사용하십시오.여러 가지 이름 바꾸기 도구)

prename -n 's#^ #/data1/#' " file"*

( -n결과가 만족스러우면 삭제하세요)

관련 정보