批量压缩目录下所有文件/文件夹的命令
我正在寻找一个命令,该命令将分别压缩目录中的每个文件夹,每个存档的名称反映原始文件夹名称。我知道
tar czvf example.tar.gz example/
将压缩整个文件夹。但是,我还没有找到批量存档的命令。有这样的命令吗?
I'm looking for a command that will compress every folder within a directory separately with the name of each archive reflecting the original folder name. I know that
tar czvf example.tar.gz example/
will compress an entire folder. However, I have not found a command to bulk archive. Is there such a command?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请注意,我使用了
-maxdepth 1
。考虑目录结构:
如果没有
-maxdepth 1
,您将得到a.tar.gz
和a/x.tar.gz
。a.tar.gz
将包含 x 以及其中的所有文件;a/x.tar.gz
将包含 x 及其文件。但这会将 x 内的项目存储两次,假设这不是目标。更新以使用
-mindepth 1
,因为当在example/
之外运行时,example.tar.gz
也会被创建。更新 ...对于 bzip2:
Note that I used
-maxdepth 1
.Consider the directory structure:
Without
-maxdepth 1
you would geta.tar.gz
anda/x.tar.gz
.a.tar.gz
would contain x and all of the files within; anda/x.tar.gz
would contain x and its files. But this stores the items within x twice, assuming that isn't the goal.Updated to use
-mindepth 1
as well, because when run outside ofexample/
anexample.tar.gz
would be created as well.Update ... and for bzip2:
好的,这是我想出的最终命令,用于存档然后使用 bzip2 进行压缩以实现最大压缩
find -min深度 1 -max深度 1 -type d -exec tar cjf '{}'.tar.bz2 '{}' \;
谢谢大家!
Okay, here's the final command I came up with to archive then compress with bzip2 for maximum compression
find -mindepth 1 -maxdepth 1 -type d -exec tar cjf '{}'.tar.bz2 '{}' \;
thanks everyone!