批量压缩目录下所有文件/文件夹的命令

发布于 2024-08-05 10:42:26 字数 139 浏览 2 评论 0原文

我正在寻找一个命令,该命令将分别压缩目录中的每个文件夹,每个存档的名称反映原始文件夹名称。我知道

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

如梦初醒的夏天 2024-08-12 10:42:26
for f in `find -mindepth 1 -maxdepth 1 -type d`; do
    tar -czf $f.tar.gz $f
done
for f in `find -mindepth 1 -maxdepth 1 -type d`; do
    tar -czf $f.tar.gz $f
done
抚笙 2024-08-12 10:42:26
find -mindepth 1 -maxdepth 1 -type d -exec tar czf {}.tar.gz {} \;

请注意,我使用了 -maxdepth 1

考虑目录结构:

.
|-- a
|   `-- x
|-- b
`-- c

如果没有 -maxdepth 1,您将得到 a.tar.gza/x.tar.gza.tar.gz 将包含 x 以及其中的所有文件; a/x.tar.gz 将包含 x 及其文件。但这会将 x 内的项目存储两次,假设这不是目标。

更新以使用-mindepth 1,因为当在example/之外运行时,example.tar.gz也会被创建。

更新 ...对于 bzip2:

find -mindepth 1 -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;
find -mindepth 1 -maxdepth 1 -type d -exec tar czf {}.tar.gz {} \;

Note that I used -maxdepth 1.

Consider the directory structure:

.
|-- a
|   `-- x
|-- b
`-- c

Without -maxdepth 1 you would get a.tar.gz and a/x.tar.gz. a.tar.gz would contain x and all of the files within; and a/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 of example/ an example.tar.gz would be created as well.

Update ... and for bzip2:

find -mindepth 1 -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;
烟花易冷人易散 2024-08-12 10:42:26

好的,这是我想出的最终命令,用于存档然后使用 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!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文