Die Frage Was ist das Linux-Äquivalent von DOS "dir / s / b Dateiname"? kommt nahe, aber es wird eine Dateisuchoperation für alle benannten Dateinamen abgespielt.
Ich möchte jedoch einen Verzeichnisinhaltsdifferenzvergleich mit einem Verzeichnis auf einem Windows-Computer durchführen und ihn mit einem ähnlich aufgebauten Verzeichnis auf einer QNX- Box vergleichen. Ich möchte den Befehl zum Auflisten von Verzeichnissen auf beiden Computern ausführen, einige Textdateibearbeitungen durchführen, um Pfadbegrenzungszeichen und Stammlaufwerke zu konvertieren und was nicht, um sie für ein aufschlussreiches Diff in ein kompatibles Format zu bringen.
Ich kann ein Ordnermanifest aller darin enthaltenen Unterverzeichnisse und Dateien generieren dir /b /s
und die Ausgabe als eine Reihe von Pfaden formatieren lassen ...
c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...
Ich kann sehen, dir /s
wird ls -R
, aber wie bekomme ich das /B
Äquivalent der Pfadausgabeformatierung?
-name
Option weglassen, damit nicht nach Namen gefiltert wird.Antworten:
find
kann Ihnen alles geben, was Sie brauchen. Es hat etwas mehr Overhead, da es mehr Tests alsls
alleine durchführt. Wenn Sie jedoch die Pfadinformationen in der Ausgabe haben möchten, ist dies möglicherweise der einfachste Weg, dies zu erreichen.Wenn Sie vorhaben , zwei Systeme vergleichen zu können , dann sollten Sie vielleicht einen Text tun Bearbeitung ersten und Swap
\
mit/
, und das entfernenC:
Präfix. Sortieren Sie dann die Listen unddiff
erkennen Sie die Änderungen.sed
wird dein Freund hier sein. Folgen Sie mit einem Kommentar, wenn Sie dies auch wollen.quelle
Es gibt keine Flagge, für
ls
die das getan wird, wonach Sie fragen, aber Sie können dies mit mehreren anderen Tools erreichen. Das einfachste ist (möglicherweise)find
:quelle
find
Der Standardausdruck ist.
find
, andere Implementierungen folgen jedoch dem POSIX-Standard und erfordern einen Verzeichnisoperanden.Baum -if
-i um nicht einzurücken -f um den Pfad zu drucken
quelle
-bash: tree: command not found
tree
in einer Reihe von Linux-Distributionen verpackt .tree
ist mein bevorzugtes Tool zur Überprüfung der Verzeichnisstruktur, wird jedoch auf den meisten Systemen nicht standardmäßig installiert.Tun Sie dies, um den tatsächlichen Pfad mit dem Präfix zu erhalten (vorausgesetzt, dies ist wichtig)
quelle
find "${PWD}"
sollte genug sein. Ich bin mir jedoch nicht sicher, ob dies unter QNX funktioniert.pwd
als auch externes / bin / pwd hat, die sich auch darin unterscheiden, wie sie mit Verzeichnissen umgehen, die über Symlinks erreicht werden.