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

ajo
la source

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

Nifle
la source
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.

Andy Lester
la source
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.

Gilles 'SO- arrête d'être méchant'
la source
Sur mac, vous pouvez utiliser juste openau lieu degnome-open
Janac Meena