我想压缩目录中的文件,但只压缩到给定的深度。在下面的例子中,我想压缩文件直到深度为 3 的文件:
dir0/
dir1/
dir2 -> subdir1, subdir2
dir3 ->
file1
如果我可以发出:
zip --depth 3 -r output dir0
我将得到以下输出:
dir0/dir1/file1
我该如何实现?我应该使用 tar 吗,还是 Linux 中还有其他常用工具?
答案1
使用find
with-maxdepth
来限制遍历深度,然后使用该工具的选项从 stdin、xargs 或命令替换中获取文件名。
find ... -maxdepth 3 ... | zip -@ ...