나는 Brian Ward의 "How Linux Works"를 읽고 있었는데 그는 "이 형식을 잘 알 때까지 -exec와 같은 옵션을 시도하지 마십시오"라고 경고했습니다.
find -name file -print
지금까지 나는 이 양식이 왜 그렇게 중요한지 이해하지 못했습니다. 이름에 관계없이 특정 위치의 디렉토리를 검색하고 싶지 않은 이유는 무엇입니까? 또한 -print가 기본 옵션인 것으로 보이며 맨페이지에서는 일부 파일 이름에 개행 문자가 포함될 수 있으므로 -print0을 사용할 것을 강력히 권장합니다.
답변1
저자는 독자들에게 -exec
이 명령의 구조와 방법을 이해하지 않고 이 명령을 시도 하지 말라고 경고합니다 find
.
find -type d -print
예를 들어, 시도해 보는 것도 나쁘지 않습니다.경고하다하지만 이것을 실행하면 어떻게 되는지 아시나요 find -depth -type d -exec mv {} {}.surprise \;
?
어떤 일이 일어나는지 확인하려면 mv
영구적인 작업을 수행하지 않는 명령으로 바꾸거나 보완하세요.
find -depth -type d -exec echo mv {} {}.surprise \;
의 경우 -print0
이는 파이프라인 내부에서 작업할 때만 유용합니다. (그러나 다른 유틸리티가 NUL로 구분된 레코드를 지원할 때 유용합니다.) find
육안 검사를 위해 출력을 나열하려면 대신 를 사용하십시오 -print
.
추신. 파일 시스템의 중요한 부분에서 위험한 명령 실행을 복구하려는 경우 다음을 수행할 수 있습니다.아마도달리기 find -depth -type d -print0 | while IFS= read -r -d '' d; do mv "$d" "${d%.surprise}"; done
. 하지만 안전한 곳에서 시도해 보는 것이 좋습니다 /tmp
.