5 votes

Comment combiner les commandes ls et cd dans Unix

ls, me donne tous les répertoires

ls -trh, me donne tous les répertoires triés par date (le plus récent en dernier)

ls -dtrh */ | tail -1, me donne le nom du dernier répertoire (par date)

Est-il possible d'incorporer d'une certaine manière les commandes ls et cd, afin que je puisse naviguer vers le dernier répertoire. Quelque chose de logiquement équivalent à ls -trh | tail -1 | cd, mais fonctionnant.

10voto

Matthew Flaschen Points 2460
cd "$(ls -trh | tail -1)"

Ceci utilise la sortie du pipeline ls|tail comme arguments de ligne de commande pour cd.

EDIT : camh a raison, cela devrait donner de meilleures performances, car head n'ira pas à travers les lignes que vous ignorez.

cd "$(ls -th | head -1)"

2voto

Naytzyrhc Points 121

Solution using backticks:

cd \`ls -th | head -1\`

2voto

J'ai fait un alias pour mon usage personnel :

alias cdu='cd $(ls -rtd */ | tail -1)'

cela vous placera dans le dernier répertoire modifié/créé à votre position.

1voto

Bemsy Points 11

Utilisez cette commande simple :

cd `ls -t`

Le caractère <`> est un caractère backtick. Pas une apostrophe.

Cela vous amènera au répertoire le plus récent. Essayez-le.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X