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