unix - sortieren Sie den Inhalt zweier Ordner und vergleichen Sie sie anschließend mit dem Befehl diff

740
postit98

Wie kann ich sortvor dem Vergleich dieser beiden Verzeichnisse den Inhalt zweier verschiedener Ordner nutzen diff?

2
mögliches Duplikat von [zwei Verzeichnisbäumen vergleichen] (http://superuser.com/questions/734548/compare-two-directory-trees) Paul vor 10 Jahren 0
"rsync" kann nicht verwendet werden. sagt nicht gefunden postit98 vor 10 Jahren 0
Kann ich "comm" verwenden? postit98 vor 10 Jahren 0

1 Antwort auf die Frage

1
chaos

Sie könnten diffmit der Prozessersetzung verwenden :

diff <(ls -a dir1/) <(ls -a dir2/) 
  • <(...)erstellt einen Dateideskriptor, dessen Pfad als Argument hinzugefügt wird diff.
  • Wenn keine Sortieroption angegeben ist, lssortieren Sie die Ausgabe alphabetisch.
  • Die zwei lsAusgaben sind zum diffVergleich gegeben.

Meine Beispielordner sehen so aus:

. ├── dir1 │   ├── file1 │   ├── file2 │   └── file3 └── dir2 ├── file2 ├── file3 └── file4 

Die Ausgabe ist dieser Fall ist:

$ diff <(ls -a dir1/) <(ls -a dir2/) 3d2 < file1 5a5 > file4