如何仅压缩多个目录中的文件而不压缩目录中的文件?

如何仅压缩多个目录中的文件而不压缩目录中的文件?

我的 Test 文件夹下有三个文件夹。

Test ----> dir1, dir2, dir3

在dir1、dir2和dir3下,我有很多文件。我只想压缩文件而不是 dir1、dir2 和 dir3。

答案1

Test

pax -w's|.*/||' dir[1-3]/* | xz > file.tar.xz

将存档不带路径组件的文件。

请注意,这dir[1-3]/*将省略隐藏文件。对于符号链接,还将-s重写符号链接目标。

如果你只想要常规的文件在那里,假设你的文件名都不包含换行符,你可以这样做:

find dir[1-3] -type f | pax -ws'|.*/||' | xz > file.tar.xz

如果文件名可能包含换行符,在某些系统上,您可以编写:

find dir[1-3] -type f -print0 | pax -w0s'|.*/||' | xz > file.tar.xz

虽然findpax是标准命令,-print0-0不是那么 YMMV。

相关内容