findコマンドは次の出力を提供します。
[root @ localhost /]#find var / log / -iname anaconda。* var / log / anaconda.log var / log / anaconda.xlog var / log / anaconda.yum.log var / log / anaconda.syslog var / log / anaconda.program.log var / log / anaconda.storage.log
tarと組み合わせると、次の出力が表示されます。
[root @ localhost /]#find var / log / -iname anaconda。* -exec tar -cvf file.tar {} \; var / log / anaconda.log var / log / anaconda.xlog var / log / anaconda.yum.log var / log / anaconda.syslog var / log / anaconda.program.log var / log / anaconda.storage.log
ただし、tarファイルを一覧表示している間、単一のファイルのみが表示されます
[root @ localhost /]#tar -tvf file.tar -rw ------- root / root 208454 2012-02-27 12:01 var / log / anaconda.storage.log
ここで私が間違っているのは何ですか?
xargsを使用すると、この出力が得られます。
[root @ localhost /]#find var / log / -iname anaconda。* | xargs tar -cvf file1.tar
二番目の質問
varの前に/を入力find /var/log
しているときに、このメサージュtarを与える理由を意味します:メンバー名から先頭の `/ 'を削除する
[root @ localhost /]#find / var / log / -iname anaconda。* -exec tar -cvf file.tar {} \; tar:メンバー名から先頭の「/」を削除します /var/log/anaconda.log tar:メンバー名から先頭の「/」を削除します /var/log/anaconda.xlog tar:メンバー名から先頭の「/」を削除します /var/log/anaconda.yum.log tar:メンバー名から先頭の「/」を削除します /var/log/anaconda.syslog tar:メンバー名から先頭の「/」を削除します /var/log/anaconda.program.log tar:メンバー名から先頭の「/」を削除します /var/log/anaconda.storage.log
簡単な形式では、次の2つの違いは何ですか?
find var/log
そして find /var/log
{} +
の代わりに{} \;
1つの引数に発見することでしょうグループの結果
find
コマンドを進めていくには、検索語を引用する必要があります。時々ではなく常に機能します。