Ich habe eine bestimmte Reihenfolge von Dateien, die ich auflisten möchte, falls sie vorhanden sind. rund 40 Dateien. Eine Art Vorrang. Also habe ich versucht:
ls -1d /opt/foo/lib.jar /opt/bar/lib.jar
Ich hatte erwartet, dass dies /opt/foo/lib.jar
auflistet zuerst, wenn beide existieren.
Aber eigentlich druckt es den bar
zuerst und das foo
danach.
Gibt es eine Möglichkeit, ls
zu erstellen die Einträge in der in den Parametern angegebenen Reihenfolge auflisten?
Oder ein alternativer Ansatz mit find
?
Akzeptierte Antwort:
Mit GNU ls
, könnten Sie das -U
versuchen Möglichkeit:
-U
:nicht sortieren; Einträge in Verzeichnisreihenfolge auflisten
(obwohl wir hier nicht den Inhalt von Verzeichnissen auflisten, also ist der Teil, auf den es ankommt, nicht sortieren ).
$ ls -1dU /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar
Etwas portabler (funktioniert mit GNU und FreeBSD ls
, aber nicht mit herkömmlichem ls
Implementierungen und ist auch nicht POSIX), können Sie ls -1df
verwenden :
$ ls -1df /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar