TARはどんなキャラクターが嫌いですか?

TARはどんなキャラクターが嫌いですか?

増分バックアップのためにDVDに焼いた写真のリストを保存しましたが、奇妙な状況に直面しました。ファイルはDVDに焼かれていますが、tarはそうではないと言います。再現段階は次のとおりです。

mkdir tarbug && cd tarbug
mkdir -p photos/{1,2,3}
touch "photos/1/P06-23-08_15.21[1].jpg"
touch "photos/2/P06.jpg"
touch "photos/3/P01.jpg"

すべてのファイルのリストを作成します(通常DVDを焼いてリストに追加します)。

find photos -type f > list

リストのファイルを除いて、ディレクトリを表示しない新しいファイルを提供します。

tar cf - photos -X list | tar tf - | grep -v '/$'

結果:

photos/1/P06-23-08_15.21[1].jpg

ファイルリストには表示しないでください。角かっこをバックスラッシュでエスケープする必要があることを知りましたか?しかし、私はどうやって知ることができますか? tarが好きではない、または他の目的に使用しない文字のリストはありますか?

答え1

マンページを見るとtar次のようになります。

 -X, --exclude-from FILE
       exclude patterns listed in FILE

情報文書に詳細が記載されています。

したがって、listファイル名ではなくパターンのリストでなければなりません。 ㅏ模様通常、シェルワイルドカードパターンを表します。したがって、少なくとも、*] [、およびは]特別です。それ{も事実かもしれません}

ドキュメントに--no-wildcards。これにより、名前はパターンではなく文字通り一致します。--no-wildcards前に行く必要があります-X

[私が確認したGNU tarです。他の tar 実装は異なる場合があります。 ]

関連情報