我想创建一个 tar 包,并仅包含目录中以特定文件名开头的文件。例如,我有 apples-xxx 和 oranges-xxx,我只想将以“apple”开头的文件打包成 tar 文件。我该怎么做?
谢谢!
答案1
嗯,我可能忽略了一些东西,但是
tar cf /path/tarfile appl*
除非您有也被称为 的目录./appl*
,在这种情况下,它们及其内容将被拖曳,否则应该可以做到这一点。如果属于后者,您可以使用 来停止这种情况--no-recursion
。
答案2
也许是这样的:
find / -type f -name "apple*" -exec tar -rf archive.tar '{}' \;
tar cf /path/tarfile appl*
这比因为没有使用 apple* 模式存档目录要好
答案3
关于什么
find / -type f -name "apple*" -exec tar -cf archive.tar '{}' \+
? 这样,它会一次性将所有文件名传递给 tar(参见-exec 命令 {} +在查找手册页上)。
答案4
对于具有不同模式的多个文件,可以使用
find ./ -type f \( -name "apple*" -o -name "orange*" -o -name "berries*" -o -name "lemons*" \) -exec tar -cf archive.tar '{}' \+
这是基于 B14D3 和 al0 的答案,以及此处的链接:https://www.tecmint.com/linux-find-command-to-search-multiple-filenames-extensions/