tar テキストファイルにリストされている特定の数のファイル

tar テキストファイルにリストされている特定の数のファイル

ファイルのリストを含むテキストファイルがあります。

私は使用します。

tar --null --no-recursion -uf abc.tar --directory= /tmp/temp --files-from abc.txt

このコマンドは、単にテキストファイルにリストされているすべてのファイルを含むtarを生成します。

リストから選択した数のファイルのみを圧縮する方法はありますか?たとえば、テキストファイルにリストされている最初の50ファイルのみが説明されます。

ベストアンサー1

次のように試すことができます:(ファイル名にスペースを許可するように更新されました。)

head -50 abc.txt | tr "\n" "\0" | xargs -0 tar --null -no-recursion -uf abc.tar --directory=/tmp/temp

このコマンドはhead -50リストファイルの最初の50行を取得します。結果|はにパイプされますtr。デフォルトでは、改行文字をnull文字に置き換えるtr変換操作が行われます。結果はにパイプされ、その行をすべてコマンドの引数に変換します。引数は、空白ではなくNULL文字に基づいて別々の引数を作成します。これにより、ファイル名にスペースが含まれていてもコマンドが機能します。\n\0xargs -0tar-0xargs

コメントをお寄せいただいたJordanに感謝します。

おすすめ記事