tarを使用して.txtファイルのファイルセットを圧縮するには?

tarを使用して.txtファイルのファイルセットを圧縮するには?

to_be_archived_files.txt次の内容で名前が付けられた.txtファイルには、多くのファイル名がリストされています。

~/Documents/dir1/a.html
~/Documents/dir1/b.html
~/Documents/dir1/c/1.html

すべて追加するarchive.tar.gz方法アスファルト

私は次のようなものが欲しい:

tar czf archive.tar.gz -FROM-FILELIST=to_be_archived_files.zip

どうすればいいですか?

答え1

この-Tオプションを使用してください。

 -T, --files-from FILE
       get names to extract or create from FILE

~ホームディレクトリのエイリアスとして使用できないため、フォルダを明示的に指定する必要があります。

答え2

~まず、ホームディレクトリに置き換える必要があります。ホームディレクトリにこのエントリが含まれていないとします:(通常は含まれておらず、そうでなければ参照できません/etc/passwd)。

(cd / &&
  sed "s:^~:$HOME:" | pax -w | gzip) < file.list > file.tar.gz

またはtarGNUの場合は、次のいずれかを実行してくださいbsdtar

(cd / &&
  sed "s:^~:$HOME:" | tar -T - -zcf -) < file.list > file.tar.gz

一部の他の人はそうではありませんでしたtar。これにはパラメータ()を使用します。-I-Tstarlist=-star cvf - list=-

starそのリストのファイルがタイプの場合を除き、上記の解決策を参照してください。目次、そのディレクトリの内容全体を含みます。

内容なしでディレクトリのみをアーカイブするには、paxadd-dオプションを使用するか、GNUtarまたはbsdtarこの--no-recursionオプション(としても-n使用されますbsdtar)を使用します。

starディレクトリの内容を含めるには、この-dodescオプションを追加します。

関連情報