Find

“-bash: {}: 沒有這樣的文件或目錄”使用 find exec

  • October 11, 2019

我正在嘗試執行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

我究竟做錯了什麼?

在你的命令下

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以正確的順序處理。

引用自:https://unix.stackexchange.com/questions/546319