web-dev-qa-db-ja.com

ファイルのリストから入力を取得するtarアーカイブ

Tarでアーカイブしたいファイルのリストを含むファイルがあります。 mylist.txtと呼びましょう

を含む:

file1.txt
file2.txt
...
file10.txt

入力としてmylist.txtを取るTARコマンドを発行する方法はありますか?何かのようなもの

tar -cvf allfiles.tar -[someoption?] mylist.txt

そのため、このコマンドを発行した場合と同様になります。

tar -cvf allfiles.tar file1.txt file2.txt file10.txt 
133
neversaint

はい:

tar -cvf allfiles.tar -T mylist.txt
216
Martin York

GNU tar(これはLinuxであるため)を想定すると、-Tまたは--files-fromオプションが必要です。

81
Simon Richter

役に立つかもしれないファイル名をパイプすることもできます:

find /path/to/files -name \*.txt | tar -cvf allfiles.tar -T -
27
woot

一部のバージョンのtar、たとえばHP-UXのデフォルトバージョン(11.11および11.31でテスト済み)には、ファイルリストを指定するコマンドラインオプションが含まれていないため、適切な回避策は次のとおりです。

tar cvf allfiles.tar $(cat mylist.txt)
13
barush

Solarisでは、オプション-Iを使用して、通常はコマンドラインでファイルから指定するファイル名を読み取ることができます。コマンドラインとは対照的に、これは数十万のファイルを含むtarアーカイブを作成できます(まさにそうしました)。

したがって、例は次のようになります

tar -cvf allfiles.tar -I mylist.txt
5
Jan

AIXの場合、次のように機能しました。

tar -L List.txt -cvf BKP.tar
2
Cassiano Bucci