GNU/Linux >> Tutoriels Linux >  >> Linux

Comment répertorier le nième fichier le plus jeune (sans analyser Ls !) ?

Donc je sais que l'analyse de ls est mauvaise !

Aujourd'hui j'ai trouvé cette pépite :

FILENAME=`ls -t $READ_FOLDER | head -1`

Donc, je crois qu'à l'origine, cela a été conçu pour saisir le nom de fichier le plus récent, je veux en fait maintenant l'adapter, pour saisir peut-être le 5ème fichier le plus récent car le processus qui le vérifie est un peu lent, et nous ne pouvons donc pas être sûrs qu'ils ont encore été traités.

Je travaille en bash, mais je ne m'oppose pas non plus à une solution générique sh.

Réponse acceptée :

Vous pouvez utiliser GNU find pour lister les fichiers avec l'heure modifiée exprimée en heure d'époque, puis utilisez sort pour trier la liste, enfin head et tail pour obtenir le nom de fichier numéroté souhaité :

find . -maxdepth 1 -type f -printf '%[email protected] %pn' | sort -k1,1nr | head -5 | tail -1

Linux
  1. Comment utiliser la commande Tar sous Linux

  2. Comment ajouter la sortie à un fichier ?

  3. Comment lister la taille de chaque fichier et répertoire et trier par taille décroissante dans Bash ?

  4. Comment puis-je lister les fichiers dans une archive zip sans la décompresser ?

  5. Comment supprimer un fichier sans utiliser rm ?

Comment utiliser la commande Linux head

Comment utiliser la commande Linux diff

Comment exécuter la commande Sudo sans mot de passe

Comment lister le contenu d'un paquet sous Linux

Comment lister les membres d'un groupe sous Linux

Comment ajouter du texte au début du fichier sous Linux