Supposons que j'ai un répertoire à l' /dir
intérieur duquel il y a 3 liens symboliques vers d' autres répertoires
/dir/dir11
, /dir/dir12
et /dir/dir13
. Je veux lister tous les fichiers en dir
incluant ceux dans dir11
, dir12
et dir13
.
Pour être plus générique, je souhaite lister tous les fichiers, y compris ceux des répertoires qui sont des liens symboliques. find .
, ls -R
, Etc arrêt au symlink sans avoir à naviguer dans les à la liste plus loin.
Réponses:
L'
-L
option d'ls
accomplir ce que vous voulez. Il déréférence les liens symboliques.Donc votre commande serait:
Vous pouvez également accomplir cela avec
L'
-follow
option ordonne à find de suivre les liens symboliques vers les répertoires.Sur Mac OS X, utilisez
comme cela
-follow
a été déconseillé.la source
-follow
- et il a dit qu'il ne pouvait pas trouver le dossierollow
find -L .
- J'avais le même problème que @ S.Matthew_Englishfollow
que les chemins de fichiers (chemin complet du fichier) et non le chemin du répertoire, comment puis-je le faire?Et l' arbre ?
tree -l
suivra les liens symboliques.Avertissement : j'ai écrit ce paquet.
la source
ls
. Il est également plus facile à coller.-type f
signifie qu'il affichera de vrais fichiers (pas des liens symboliques)-follow
signifie qu'il suivra les liens symboliques de votre répertoire-print
le fera afficher les noms de fichiers.Si vous voulez un affichage de type ls, vous pouvez faire ce qui suit
la source
ls -L
optionUtilisation de ls:
de 'man ls':
Ou, en utilisant find:
Depuis la page de manuel find:
Si vous trouvez que vous ne voulez suivre que quelques liens symboliques (comme peut-être ceux de niveau supérieur que vous avez mentionnés), vous devriez regarder l'option -H, qui ne suit que les liens symboliques que vous lui passez sur la ligne de commande.
la source
Je savais que
tree
c'était approprié, mais je n'avais pas d'arbre installé. Donc, j'ai une alternative assez proche icila source
la source
-L
déréférence les liens symboliques. Cela rendra également impossible de voir les liens symboliques vers les fichiers, ils ressembleront au fichier pointé.la source
au cas où vous souhaiteriez imprimer tout le contenu du fichier :
find . -type f -exec cat {} +
la source