我正在尝试解压缩目录中的所有文件。它们分散在各个子目录中,所以我不能只使用通配符。相反,我使用find
:
find . -name "*.tar.gz" -print0 -execdir tar xvf {} \;
那行得通。但是,我想忽略已经用--skip-old-files
.
find . -name "*.tar.gz" -print0 -execdir tar xvf --skip-old-files {} \;
当我添加时--skip-old-files
,每个文件都会出现错误:
./path/to/file.tar.gztar: --skip-old-files: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
为什么我会收到错误消息?一定有一些我没有看到的小错误。
答案1
f
期望其参数作为下一个命令行参数;和
tar xvf --skip-old-files {}
那是--skip-old-files
,因此被解释为要读取的文件,而不是一个选项。
使用
tar xvf {} --skip-old-files
反而。