私は次のようなことをしようとしています。
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
?
答え2
~によるとこの投稿、入力が破砕されて最後のチャンクのみを含むtarファイルを生成する場合は、代わりにr
使用することをお勧めします。したがって、より良い解決策は次のとおりです。c
xargs
rm -f t.tar 2>/dev/null # remove tar if there
ls -t | head -n 3 | xargs tar -rf t.tar