Vous vous demandez s'il existe un moyen simple et / ou portable de dire «passez au répertoire enfant le plus récemment modifié». Je peux utiliser ls et awk mais il y a probablement une meilleure façon.
cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' )
Je dois exécuter une commande dans un répertoire "fichiers de sortie" avec des centaines de sous-répertoires et 99% du temps, je veux aller dans le répertoire le plus récemment modifié. Je ne sais pas à l'avance quels seront les noms des répertoires.
bash
date
cd-command
twblamer
la source
la source
cd $(ls -v1td */ | head -1)
?Réponses:
En supposant que vos répertoires ne contiennent aucun caractère non imprimable:
(notez qu'il prendra également en compte les liens symboliques vers les répertoires).
Si cela ne vous dérange pas de passer à zsh:
Ou pour inclure des liens symboliques vers des répertoires comme dans le premier exemple:
la source
Prendre plaisir.
la source
Essayez cette courte commande versionnée
la source