Sie könnten alle unerwünschten fileendings mit find auszuschließen:
(diese Version entspricht nur gegen Dateiendungen)
diff -r -x `find . -type f -name '*.*' | sed 's|.*\.|.*\.|' | sort -u | grep -v YOURFILETYPE | paste -sd "|"` ...rest of diff command
Oder Sie erzeugen die Liste der ausgeschlossenen Dateien im Voraus und auf den diff passieren:
(diese Version passt auch gegen Dateinamen und alle anderen regex Sie in include.file angeben)
find /dirA -type f | grep -v YOURFILEENDING > exclude.list
find /dirB -type f | grep -v YOURFILEENDING >> exclude.list
diff -X exclude.list -r /dirA /dirB
Wenn Sie diese Befehle über &&
Kette finden Sie eine handliche oneliner bekommen;)
MIT DATEI
Wenn Sie eine Include-Datei verwenden möchten, können Sie diese Methode verwenden:
- Sie geben die Include-Datei
- grep Spiele gegen alle Dateien in den Ordnern und verwandelt Ihren inkl udefile in eine Ausschlussdatei für diff (diff dauert nur Dateien ausschließen)
Hier ist ein Beispiel:
Komplizierte Inline-Version:
(diese Version entspricht nur gegen Dateiendungen)
diff -r -x `find . -type f -name '*.*' | sed 's|.*\.|.*\.|' sort -u | grep -v -f include.file | paste -sd "|"` /dirA /dirB
Etwas längere einfachere Version:
(diese Version passt auch auf den Dateinamen s und jede andere Regex, die Sie in include.file angeben)
find /dirA -type f | grep -v -f include.file > exclude.list
find /dirB -type f | grep -v -f include.file >> exclude.list
diff -X exclude.list -r /dirA /dirB
mit jeder Zeile enthalten.Datei ein grep regex/Ausdruck ist:
log
txt
fileending3
whateverfileendingyoulilke
fullfilename.txt
someotherregex.*
HINWEIS
ich nicht diese laufen hätte, weil ich nirgendwo in der Nähe von einem Computer bin. Ich hoffe, ich habe alle Syntax korrekt.
Ich mag diese Idee, aber wie könnte ich eine invertierte Methode verwenden und nur Diff gegen eine "include.list"? – vmoralito
@vmoralito Ich habe gerade meinen Beitrag aktualisiert und eine Methode entwickelt, um dynamisch eine Ausschlussdatei aus einer Include-Datei zu erzeugen, da diff nur die Ausschlussdatei akzeptiert. Mit dem obigen Verfahren können Sie jedoch Ihre Include-Datei verwenden. –