特定のサブディレクトリを無視しながら、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
またはオプションは、すべてのファイルとディレクトリの名前を一致させるファイル名のグロービングパターンを使用します。パターンが特定の名前と一致する場合、その名前は比較から除外されます。--exclude
diff
パターンは、パス名ではなくファイルとディレクトリのデフォルト名に適用されます。つまり、ignoreme
使用できるディレクトリを除外するという意味です。
diff -qr --exclude=ignoreme ...
これはまたignoreme
。
これは次のようになります。GNUで--exclude
合計がどのように機能するか--exclude-dir
grep
再帰的に実行する場合は、grep
GNUのgrep
マニュアルでよりよく説明されています。
info
GNUドキュメントdiff
スペルを書いてください。
-x PATTERN
--exclude=PATTERN
ディレクトリを比較すると、ベース名が一致するファイルとサブディレクトリは無視されますPATTERN
。