이름에 공백이있는 파일이 들어있는 디렉토리가있는 경우
$ ls -1 dir1
file 1
file 2
file 3
다음과 같이 다른 디렉토리에 모두 복사 할 수 있습니다.
$ find dir1 -mindepth 1 -exec cp -t dir2 {} +
그러나 출력 find dir1 -mindepth 1
에는 이스케이프되지 않은 공백이 포함됩니다.
$ find dir1 mindepth 1
dir1/file 1
dir1/file 3
dir1/file 3
print0
대신에 사용 print
하면 출력에는 여전히 이스케이프되지 않은 공백이 포함됩니다.
$ find dir1 mindepth 1 -print0
dir1/file 1dir1/file 2dir1/file 3
을 사용하여 이러한 파일을 수동으로 복사하려면 cp
공백을 이스케이프 처리해야합니다. 그러나 내가 명령을 사용하는지 또는 명령의 끝에 있는지에 관계없이 cp
의 주장이 나올 때 이것은 불필요 해 보인다 .find
+
\;
그 이유는 무엇입니까?
find..exec
이상한 파일 이름을 자체적으로 처리 할 수 있습니다 ..