쉘 배치 압축 파일

쉘 배치 압축 파일

무작위 명명법을 사용하는 540만 개가 넘는 파일이 있는 서버가 있습니다. 이제 이 파일을 각각 5400개씩 1000gz 파일로 압축하는 쉘 스크립트를 작성하고 싶습니다. 또한 나중에 참조할 수 있도록 각 파일이 압축된 gz 파일에 대한 로그를 유지하고 싶습니다. 이것이 어느 정도 가능합니까?

답변1

파일 이름에 "\n"이 없고 쉘이 bash라고 가정합니다.

find /path -type f -print | split -l 5400 - filenames.
for f in filenames.*
do tar cvzf tarfile-${f#filenames.}.tar.gz -T $f
done
gzip -9 filenames.*

"zzz" 파일은 어디에 있나요?

zgrep zzz filename.*

명령이 "filename.XX.gz"를 반환하면 파일은 "tarfile-XX.tar.gz"에 있습니다.

관련 정보