列出目录大小并压缩它们

列出目录大小并压缩它们

我有一个要在 ubuntu 机器上压缩的目录列表。

有没有什么工具可以自动计算我的文件夹的大小并将大小复制到压缩文件的名称中?

我有这样的事情:

$du -h -d 1
671G    ./folder1
2.7T    ./folder2

我希望它是这样的

$ls -1 
folder1.671.G.tar.gz
folder2.2.7T.tar.gz

给定的大小du -h -d 1是未压缩的大小,因此大小计算需要在压缩后进行。

谢谢

答案1

for folder in $(ls -l | grep ^d | awk '{print $NF}'); do
  tar zcf ${folder}.tar.gz ${folder}
  size=$(du -sh ${folder}.tar.gz | awk '{print $1}')
  mv ${folder}.tar.gz ${folder}-${size}.tar.gz
done
  • Tar & zip 当前目录中的所有文件夹
  • 获取tar文件的大小
  • 重命名 tar 文件以包含大小

相关内容