「xargs」を介して「ls」から「tar」に変数を渡す

「xargs」を介して「ls」から「tar」に変数を渡す

私は次のようなことをしようとしています。

ls -t | head -n 3 | xargs -I {} tar -cf t.tar {}

最後の3つの変更されたファイルはアーカイブされますが、最終的には各ファイルに対して個別にtarコマンドが実行され、順序に関係なく3つのファイルのうち最後のファイルを含むtarファイルが残ります。私は "xargs"を正しく使用しないことを知っていますが、検索は役に立ちませんでした。私が見つけたいくつかの例はうまくいきません。より簡単なコマンド

ls | xargs -I {} tar -cf t.tar {}

そのディレクトリに1つのファイルのみを含むtarファイルが作成されます。

ベストアンサー1

ls -t | head -n 3 | xargs tar -cf t.tar

私のために動作します。フラグを設定する理由がありますか-I

おすすめ記事