/でtarを実行するときに「/usr/sbin」を除外せずに「/sbin」を除外するにはどうすればよいですか?
tar --exclude=dir
一部の詳細:通常、tarの現在の作業ディレクトリに表示される「dir」とそのサブフォルダのみを除外することが許可されています。
私はこの見解を裏付ける文書を見つけることができず、実際にそれが偽であることを発見しました。私は古代のSuSE、いくつかのCentOS、そしてDebian(LennyからJessieまで)を使ってテストしています。tar --exclude=dir
「dir」を除外してください。どこでも構わないそれを発見!
概念の証拠:
cd /tmp
mkdir -p dira/dirb/{a,b,c,d,e}
mkdir -p dirc/dira/{a,b,c,d,e}
tar c dir? | tar t
作成したtar "ファイル"の中に、作成した各ディレクトリが表示されます。それは問題ではありません。しかし、一緒に:
tar c dir? --exclude=dira/* | tar t
出力は次のとおりです
dira/
dirc/
dirc/dira/
内容ではなくディレクトリ自体を除外する場合も同様です。
tar c dir? --exclude=dira | tar t
以下を提供します。
dirc/
それは私が望むものではありません! 「dira/を除外したい。「しかし、「dira /」は除外されません。dira自体が別のディレクトリのサブフォルダーの場合。
タグ付きの一部のファイルを "dira" に入れると役に立ちますが、そうすることができない場合もあります。たとえば、バックアップユーザーに除外されたディレクトリへの書き込み権限がない場合、またはディレクトリが変更されないことが重要な場合。
ベストアンサー1
Gnu tarを使用している場合は、ここに広範なマニュアルがあります。こここの--anchored
オプションについて議論し、除外されたパターンと含まれているグローバルパターンがどのように異なるかを説明します。あなたは試すことができます:
tar c dir? --anchored --exclude=dira | tar t