回答:
名前のリストを使ってパスを見つけることができます。 findしかし、別のディレクトリに同じ名前のファイルがある場合は、ちょっとした問題に遭遇する可能性があります。
それが実際には問題にならない場合は、次のことを実行できます。
find <main_directory> | grep -f mylist.txt
そして、そのリストを自分の tar コマンド。完全なコマンドは次のようになります。
tar cvf allfiles.tar -T <(find <main_directory> |
grep -f mylist.txt --color=never)
あなたに気づく しなければならない つかいます --color=neverそうでなければ、grepに対して色が有効であれば、あなたはのために無効な入力を送るでしょう。 tar。
大文字と小文字の区別を無視するには、この場合、 grepこれは実際には フィルタリング ファイル、あなたは単にフラグを追加することができます -i:
tar cvf allfiles.tar -T <(find <main_directory> |
grep -i -f mylist.txt --color=never)
<()つまり、実行中のコマンドの出力をファイル自体と見なすようにシェルに指示しているのであれば、ファイル記述子を返します。 <file> パラメータ tar ... -T <file>。改行は、スクロールバーを避けるためのものです。コマンド自体に改行はありません。