tarが多すぎる除外

tarが多すぎる除外

/で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

おすすめ記事