使用 find exec “-bash:{}:没有这样的文件或目录”

使用 find exec “-bash:{}:没有这样的文件或目录”

我正在尝试运行find . -name "binaries.tgz.*.gz" -exec gzip -d -k < {} \;(最终我正在尝试运行,find . -name "binaries.tgz.*.gz" -type f -exec gzip -d -k < {} \; | tar tzf -但我试图找出为什么管道之前的命令首先不起作用),但出现以下错误:

-bash: {}: No such file or directory:

[user@host:/data/dionaea]$ find . -name "binaries.tgz.*.gz" -type f -exec gzip -d -k < {} \;
-bash: {}: No such file or directory
[user@host:/data/dionaea]$ ls | grep binaries
binaries
binaries.tgz
binaries.tgz.10.gz
binaries.tgz.11.gz
binaries.tgz.12.gz
binaries.tgz.13.gz
binaries.tgz.14.gz
binaries.tgz.15.gz
binaries.tgz.16.gz
binaries.tgz.17
binaries.tgz.17.gz
binaries.tgz.18.gz
binaries.tgz.19.gz
binaries.tgz.1.gz
binaries.tgz.20.gz
binaries.tgz.21.gz
binaries.tgz.22.gz
binaries.tgz.23.gz
binaries.tgz.24.gz
binaries.tgz.25.gz
binaries.tgz.26.gz
binaries.tgz.27.gz
binaries.tgz.28.gz
binaries.tgz.29.gz
binaries.tgz.2.gz
binaries.tgz.30.gz
binaries.tgz.3.gz
binaries.tgz.4.gz
binaries.tgz.5.gz
binaries.tgz.6.gz
binaries.tgz.7.gz
binaries.tgz.8.gz
binaries.tgz.9.gz

我究竟做错了什么?

答案1

在你的指挥下

find . -name "binaries.tgz.*.gz" -exec gzip -d -k < {} \;

< {}在运行之前由 shell解释find

使用

find . -name "binaries.tgz.*.gz" -exec gzip -d -k {} \;

提取所有文件并保留原始文件。

你可以试试

find . -name "binaries.tgz.*.gz" -type f -exec gzip -d -c {} \; | tar tzf -

提取到标准输出,但您无法确定文件将以find正确的顺序进行处理。

相关内容