我只想要包含该字母的目录和文件。我已经能够从上一个问题重新创建它。但 tar 不是 gzip。
并且当试图使其成为 gzip 时...不会从硬链接目标中删除前导“/”?这毁了它。
这是修改后的代码(不是 gzip)
find /path/to/dir/ -type d -name "*x*" -o -type f -name "*x*" -exec tar rvf x.tar.gz {} \;
压缩包:
find /path/to/dir/ -type d -name "*x*" -o -type f -name "*x*" -exec tar cvzf x.tar.gz {} \;
在此过程中会出现相同数量的文件,但是在检查 tar (tf) 时,只会出现一个以 x 开头的文件...
用gzip不可能,还是我错过了一个更简单的解决方案......
要删除前导斜杠,您可以更改命令,例如:
这将
find
显示相对路径你这里有两个问题。第一:开关后面的命令
-exec
每出现一次就执行一次。虽然附加到现有的未压缩 tar 存档就像一个魅力,但它不适用于压缩存档。所以你在这里有两个选择:
gzip archive.tar
)cd /path/to/dir; find . -type f -name "*x*" | xargs tar -czf /path/archive.tar.gz
:)删除尾随的第二个问题
/
不是 gzip 问题,而是 tar 问题。基本上,您永远不希望在存档中包含绝对路径,因为提取存档的人想要选择将文件放在哪里 - 这意味着提取人选择的位置的相对路径。如果你真的知道你在做什么,你可以使用 tar 的 switch
--absolute-names
,它允许绝对路径在存档中,但我真的不建议这样做......