" 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 < {} \;

< {}実行する前にシェルによって解釈されますfind

使用

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

すべてのファイルを抽出し、元のファイルをアーカイブします。

あなたは試すことができます

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

標準出力に抽出しますが、ファイルがfind正しい順序で処理されるかどうかはわかりません。

おすすめ記事