파일로 리디렉션할 때 find 명령 출력이 비어 있음

파일로 리디렉션할 때 find 명령 출력이 비어 있음

find다음을 사용하여 파일 목록을 얻으려고합니다.

find . \( -iname @eaDir -o -iname .DS_Store -o -iname Thumbs.db \) -prune -o -mtime -25 -type f -printf "%P\n"

이것은 잘 작동합니다.

그러나 위 명령의 출력을 파일로 리디렉션하려고 하면 후자는 비어 있습니다.

FILES_TO_BACKUP=/tmp/__$$_myfiles.lst
find . \( -iname @eaDir -o -iname .DS_Store -o -iname Thumbs.db \) -prune -o -mtime -25 -type f -printf "%P\n" > $FILES_TO_BACKUP

이유를 아는 사람 있나요?

답변1

스크립트에서 호출하고 명령줄에서 실행하는 사이에 사용자 등을 변경하고 있습니까? 그렇다면 PATH가 변경되었을 수 있으며 다른 조회가 수행되고 있는 것입니다.

이와 같은 특정 문제의 경우, 나는 종종 "strace"와 함께 명령을 실행하여 어떻게 다른지 확인합니다.

귀하가 제공한 두 호출과 어떤 차이도 알 수 없습니다. 스크립트에서 두 번째 호출을 실행하고 있다는 힌트가 있을 수 있으므로 차이점이 있을 수 있습니다. 둘 다 전에 "pwd"를 실행하여 동일한 위치에서 실행되고 있는지 확인하고 "찾는 것"도 도움이 될 수 있습니다.

관련 정보