ls -rt (Comment lister uniquement LE DERNIER fichier? Par exemple pour: | xargs gnome-open)


16

par exemple, répertoire contenant des fichiers jpeg: comment ouvrir facilement le jpeg le plus récent dans le répertoire actuel

Réponses:


19

ls -rt | tail -1

La queue-1 indique de ne montrer qu'une seule ligne si vous voulez être plus clair, vous pouvez utiliser l'option longue à la place

ls -rt | tail --lines=1


4
Encore mieux est "ls -t | head -1". Voir mon commentaire ci-dessous.
Andy Lester

20

Ce que vous voulez vraiment, c'est le premier fichier d'une liste temporelle non inversée.

ls -t | head -1

Le -r est pour les humains parce que nous voulons la dernière chose sur l'écran qui a défilé, plutôt que la première. Dans le cas où la machine le comprend, elle pourrait tout aussi bien utiliser headet s'arrêter après la première, plutôt que d'avoir tailparcouru la liste.


3

Avec zsh:

gnome-open *.jpg(om[1])

Le qualificatif glob (om)trie les correspondances en augmentant l'âge (c'est-à-dire dans un ordre anti-chronologique). Le qualificatif glob ([1])sélectionne uniquement la première correspondance. Vous pouvez utiliser *.jpg(om[1,4])pour ouvrir les 4 fichiers les plus récents, etc.

Dans d'autres coquilles:

gnome-open "$(\ls -t *.jpg | head -1)"

mais sachez que si vous avez des caractères ou des octets non imprimables dans vos noms de fichiers (ce qui se produit généralement si vous avez des noms de fichiers dans un jeu de caractères différent de votre environnement local), lsles remplacera par ?, donc cela ne fonctionnera pas.


Sur mac, vous pouvez utiliser juste openau lieu degnome-open
Janac Meena
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.