Gibt es Linux / Unix-Tools, die alle Dateien in einem Verzeichnis finden, die in einem anderen nicht vorhanden sind? Grundsätzlich suche ich diff, das auf der Ausgabe von ls funktioniert.
Kurze und süße Skripte werden ebenfalls geschätzt.
linux
command-line-interface
filesystems
Willi Ballenthin
quelle
quelle
diff dir1 dir2 | grep "Only"
Bash:
Vergleichen Sie nur die Dateinamen - nicht den Inhalt der Dateien.
quelle
ls
,find
sondern verwenden!Wie Ihnen hier bereits gesagt wurde, können Sie DIFF in verschiedenen Nutzungsvarianten verwenden. Oder Sie verwenden
dirdiff
stattdessen einfach , was für das gedacht ist, was Sie versuchen! :-)Aber wenn Sie einige Verzeichnisse synchron halten möchten, sollten Sie sich das unbedingt ansehen
rsync
.Grüße
quelle
Wenn Sie dies auch in allen Unterverzeichnissen tun möchten, ist dies eine gute Möglichkeit:
Ich bevorzuge die Verwendung von Brief, aber Sie können das weglassen, wenn Sie wollen.
quelle
for i in $(ls -1 directory1); do if (test -f directory2/$i) then echo $i; fi; done
quelle
Das funktioniert..
quelle
ungetestet:
quelle
Dennis Williamson hatte eine gute Antwort , aber ich musste dies rekursiv tun. GNU findutils 4.7.0 sortiert seine Ausgabe nicht, daher habe ich Folgendes verwendet
Um dies nur in eine Richtung zu tun und eine Liste von Dateien zu erstellen, habe ich Folgendes verwendet:
Damit dies ordnungsgemäß funktioniert, sollten weder $ dir1 noch $ dir2 den abschließenden Schrägstrich enthalten.
quelle