shell批量压缩文件

shell批量压缩文件

我有一台服务器,其中有超过 540 万个具有随机命名法的文件。现在我想编写一个shell脚本将这些文件压缩成1000gz文件,每个文件5400个。我还想保留每个文件被压缩在哪个gz文件中的日志,以供将来参考。这在某种程度上可能吗?

答案1

我假设你的文件名中没有“\n”并且你的 shell 是 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”中

相关内容