J'ai un ordre spécifique de fichiers que je veux lister s'ils existent; environ 40 fichiers. Une sorte de préséance. Alors j'ai essayé :
ls -1d /opt/foo/lib.jar /opt/bar/lib.jar
Je m'attendais à ce que cela liste /opt/foo/lib.jar
d'abord si les deux existent.
Mais en fait, il imprime le bar
premier et le foo
après ça.
Existe-t-il un moyen de faire ls
lister les entrées dans l'ordre indiqué dans les paramètres ?
Ou une approche alternative avec find
?
Réponse acceptée :
Avec GNU ls
, vous pouvez essayer le -U
choix :
-U
:ne pas trier ; lister les entrées dans l'ordre du répertoire
(bien qu'ici, nous n'énumérons pas le contenu des répertoires, donc la partie qui compte est ne pas trier ).
$ ls -1dU /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar
Légèrement plus portable (fonctionne avec GNU et FreeBSD ls
, mais pas avec ls
traditionnel implémentations et n'est pas POSIX non plus), vous pouvez utiliser ls -1df
:
$ ls -1df /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar