Cela parcourra récursivement le /path/to/folder
répertoire et ne listera que les liens symboliques:
ls -lR /path/to/folder | grep ^l
Si votre intention est de suivre également les liens symboliques, vous devez utiliser votre find
commande mais vous devez inclure l' -L
option; en fait, la find
page de manuel dit:
-L Follow symbolic links. When find examines or prints information
about files, the information used shall be taken from the prop‐
erties of the file to which the link points, not from the link
itself (unless it is a broken symbolic link or find is unable to
examine the file to which the link points). Use of this option
implies -noleaf. If you later use the -P option, -noleaf will
still be in effect. If -L is in effect and find discovers a
symbolic link to a subdirectory during its search, the subdirec‐
tory pointed to by the symbolic link will be searched.
When the -L option is in effect, the -type predicate will always
match against the type of the file that a symbolic link points
to rather than the link itself (unless the symbolic link is bro‐
ken). Using -L causes the -lname and -ilname predicates always
to return false.
Essayez ensuite ceci:
find -L /var/www/ -type l
Cela fonctionnera probablement: j'ai trouvé dans la find
page de manuel ce diamant: si vous utilisez l' -type
option, vous devez la changer en -xtype
option:
l symbolic link; this is never true if the -L option or the
-follow option is in effect, unless the symbolic link is
broken. If you want to search for symbolic links when -L
is in effect, use -xtype.
Ensuite:
find -L /var/www/ -xtype l
find -L /var/www/ -xtype l
). Utiliser-xtype
au lieu de-type
devrait faire l'affaire dans votre recherche. Bonne chance!ls -laR /path/to/folder | grep ^l
si vous voulez également traiter les dossiers de points "cachés" ...-xtype
n'est pas disponible.find . -type l
semble vérifier récursivement.Une commande, pas de tuyaux
Explication: à
find
partir du répertoire actuel.
, toutes les références d'-type l
encre et répertoriez--ls
les en détail. Clair et simple ...En développant cette réponse, voici quelques
find
commandes liées aux liens symboliques :Rechercher des liens symboliques vers une cible spécifique
Notez que
link_target
c'est un modèle qui peut contenir des caractères génériques.Trouvez des liens symboliques brisés
L'
-L
option indiquefind
de suivre les liens symboliques, sauf en cas de rupture.Rechercher et remplacer les liens symboliques rompus
Plus d'exemples de recherche
Plus d'
find
exemples peuvent être trouvés ici: https://hamwaves.com/find/la source
find
ont une-ls
option. Celafind . -type l -ls
devrait donc être l'équivalent de ce qui précède.find -lname '*/dir/*' -printf '%P -> %l\n'
. Il convient de mentionner que link_target est un modèle.find
regarde déjà récursivement par défaut:la source
find
récursions par défaut? Je suppose que non;)-L
drapeau pour trouver sans aucune chance - des suppositions?Pour voir uniquement les liens symboliques eux-mêmes, vous pouvez utiliser
alors que si vous voulez voir aussi quels fichiers ils ciblent, ajoutez simplement un ls
la source
C'est la meilleure chose que j'ai trouvée jusqu'à présent - vous montre les liens symboliques dans le répertoire actuel, récursivement, mais sans les suivre, affichés avec des chemins d'accès complets et d'autres informations:
les sorties ressemblent à ceci:
la source
Ce que je fais, c'est créer un script dans mon répertoire bin qui ressemble à un alias. Par exemple, j'ai un script nommé lsd ls -l | grep ^ d
vous pourriez en faire un lsl ls -lR | grep ^ l
Chmod juste + x et vous êtes prêt à partir.
la source