![shell批量压缩文件](https://linux22.com/image/99490/shell%E6%89%B9%E9%87%8F%E5%8E%8B%E7%BC%A9%E6%96%87%E4%BB%B6.png)
我有一台服务器,其中有超过 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”中