GNU/Linux >> Tutoriels Linux >  >> Linux

Comment empêcher `ls` de trier la sortie ?

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

Linux
  1. Comment rechercher sur le Web à partir d'un terminal sous Linux

  2. Comment affecter la sortie d'une commande à une variable Shell ?

  3. Comment détecter si le shell est contrôlé depuis Ssh ?

  4. Comment supprimer le Bom d'un fichier UTF-8 ?

  5. Comment récupérer uniquement la ligne nécessaire à partir de la sortie du terminal ?

Comment supprimer la sortie de Grep, afin qu'elle ne renvoie que le statut de sortie ?

Comment savoir sur quelle version d'Os X je suis depuis la ligne de commande ?

Linux - La colonne des tampons dans la sortie de Free ?

Comment définir une variable égale à la sortie d'une commande dans Grub2 ?

Comment ajouter la sortie à un fichier ?

Comment rediriger la sortie de system() vers un fichier ?