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

699
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 9 Jahren 0
"rsync" kann nicht verwendet werden. sagt nicht gefunden postit98 vor 9 Jahren 0
Kann ich "comm" verwenden? postit98 vor 9 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