bash: /usr/bin/find: 인수 목록이 너무 깁니다.

bash: /usr/bin/find: 인수 목록이 너무 깁니다.

내 폴더에 파일이 너무 많습니다. 나는 단지 내 inode가 가능한 한 빨리 해제되기를 원하기 때문에 다음과 같이 시도했습니다.

find ./EcoBackup/* -name '*.*' > FilesBackupName.txt
bash: /usr/bin/find: Argument list too long
tar -cv -T FilesBackupName.txt -f tarball.tar

인수 목록이 너무 길 때 실패하지 않고 tar 속도를 어떻게 높일 수 있습니까?

성공할까요?

find /foot/bar/ -name '*.*' -exec mv -t tarball.tar {} +

find /foot/bar/ -name '*.*' -print0 | xargs -0 tar -t tarball.tar

같은 종류의 파일을 삭제할 수 있나요?

답변1

이는 bash가 실제로 일치하는 모든 파일에 별표를 확장하여 명령줄에 너무 많은 인수가 발생하기 때문에 발생합니다. 따라서 삭제한 후에는 괜찮을 것입니다(예:여기)

find ./EcoBackup/ -name '*.*' > FilesBackupName.txt

그리고 귀하가 제안한 솔루션도 효과가 있을 것입니다.


이 옵션을 사용하면 명령을 통해 --remove-files한 번에 파일을 삭제할 수 있습니다.tar

tar --remove-files -cv -T FilesBackupName.txt -f tarball.tar

관련 정보