65 votes

Afficher le chemin complet lors de l'utilisation des options

J'utilise souvent cette commande sous Unix (AIX / KSH) :

ls -Artl

Il affiche les fichiers comme suit :

-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 test1.txt
-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 test2.txt

J'aimerais modifier la commande de manière à ce que le chemin complet du fichier soit affiché. Par exemple :

-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 /usr/test1.txt
-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 /usr/test2.txt

Des idées ?

J'ai trouvé plusieurs méthodes de résolution en utilisant pwd o find mais - d'après ce que je vois - cela ne fonctionne pas si je veux garder la ls options.

67voto

Andrew White Points 23508

Et pourquoi pas cette astuce...

ls -lrt -d -1 $PWD/{*,.*}

OR

ls -lrt -d -1 $PWD/*

Je pense que cela pose des problèmes avec les répertoires vides, mais si un autre auteur a une solution, je mettrai à jour ma réponse. De plus, vous le savez peut-être déjà, mais c'est probablement un bon candidat pour un alias étant donné sa longueur.

[mise à jour] ajout de quelques ajustements basés sur les commentaires, merci les gars.

[update] comme indiqué dans les commentaires, il est possible que vous deviez modifier les expressions du matcher en fonction de l'interpréteur de commandes (bash vs zsh). J'ai ajouté mon ancienne commande pour référence.

0 votes

Après votre mise à jour, la commande ne fonctionne plus pour moi. Message cannot access /mydir/mysubdir/{*,.*}: No such file or directory

0 votes

.* semble correspondre . y .. sur bash, mais pas sur zsh. ( ls -A ne les montre pas, donc ma suggestion précédente ne fonctionne pleinement que sur zsh, et peut-être même que mon .zshrc a quelque chose à voir avec cela)

0 votes

Une dernière chose : ls -lrt -d -1 $PWD/{*,.[^.]*} n'apparaîtrait pas . y .. en sh, mais en zsh, il affiche deux fois les fichiers point. Il y a $PWD/* semble suffisant.

40voto

Qadeer Ahmed Shah Points 261

Essayez ceci, ça marche pour moi : ls -d /a/b/c/*

1 votes

Mais pas afficher le chemin d'accès complet , essayez ls -d .|more en tout lieu, ne montre que . .

0 votes

Cela fonctionne pour moi : ls -d $(pwd)/*

17voto

spacedrop Points 119

Utilisez cette commande :

ls -ltr /mig/mthome/09/log/*

au lieu de :

ls -ltr /mig/mthome/09/log

pour obtenir le chemin complet dans la liste.

1 votes

Je préfère cette solution pour sa simplicité et sa facilité d'utilisation. Je suppose que l'autre solution pourrait être utilisable si l'on créait un alias, mais il est réaliste de penser que personne ne se donnera la peine de taper tout cela.

0 votes

Ne pas afficher le chemin d'accès complet , essayez ls -ltr . |more à n'importe quel endroit, n'affiche que les noms de fichiers, et non les chemins d'accès absolus.

0 votes

J'aime bien cette solution, car la plupart des autres solutions sur le SO supposent que le PO veut lire le $PWD. La clé est vraiment de lister * à l'intérieur du répertoire cible au lieu du répertoire seul. @PeterKrauss l'accent n'est pas mis sur -ltr mais sur le glob *. En utilisant votre exemple, il faudrait faire ls -ltr *|more.

8voto

user3744148 Points 41

J'utilise cette commande :

ls -1 | xargs readlink -f

0 votes

En fonction de vos noms de fichiers, vous devrez peut-être effectuer les opérations suivantes ls -Q1 | xargs readlink -f Mais cela a très bien fonctionné pour moi.

2 votes

C'est une excellente solution, mais quelle est la différence avec une simple readlink -f ?

1 votes

Vous devez avoir xargs aliasé sur votre machine comme 'xargs -L 1'. sinon cela ne fonctionne pas pour plus d'un fichier. la commande, dans ce cas, est la suivante \ls -1 | xargs -L 1 readlink -f

5voto

jo_ Points 3535

Optimisé à partir de la réponse de spacedrop ...

ls $(pwd)/*

et vous pouvez utiliser les options ls

ls -alrt $(pwd)/*

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X