「diff-exclude」はどのように機能しますか?

「diff-exclude」はどのように機能しますか?

特定のサブディレクトリを無視しながら、2つのディレクトリツリーを比較するためにそれを使用しようとしていますが、diff正しく機能しません。これは私のファイル構造です。

temp/
|-- d1/
|   |-- f1.txt
|   `-- ignoreme/
|       `-- f2.txt
`-- d2/
    |-- f1.txt
    `-- ignoreme/
        `-- f2.txt

d1/ignoreme以下の内容を無視するよう努めましたが、d2/ignoremeそうではありません。

diff -qr --exclude=/home/ubuntu/temp/d1/ignoreme/ d1 d2
Files d1/ignoreme/f2.txt and d2/ignoreme/f2.txt differ

私も試しました

diff -qr --exclude=/home/ubuntu/temp/d1/ignoreme/* d1 d2

そして

diff -qr --exclude=/home/ubuntu/temp/d1/ignoreme/* --exclude=/home/ubuntu/temp/d2/ignoreme/* d1 d2

...しかし、常に同じ結果が出てきます。

どのように機能させますか?

ベストアンサー1

GNU-xまたはオプションは、すべてのファイルとディレクトリの名前を一致させるファイル名のグロービングパターンを使用します。パターンが特定の名前と一致する場合、その名前は比較から除外されます。--excludediff

パターンは、パス名ではなくファイルとディレクトリのデフォルト名に適用されます。つまり、ignoreme使用できるディレクトリを除外するという意味です。

diff -qr --exclude=ignoreme ...

これはまたignoreme

これは次のようになります。GNUで--exclude合計がどのように機能するか--exclude-dirgrep再帰的に実行する場合は、grepGNUのgrepマニュアルでよりよく説明されています。

infoGNUドキュメントdiffスペルを書いてください。

-x PATTERN
--exclude=PATTERN
ディレクトリを比較すると、ベース名が一致するファイルとサブディレクトリは無視されますPATTERN

おすすめ記事