我的 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
虽然find
和pax
是标准命令,-print0
但-0
不是那么 YMMV。