233 votes

Comment lister tous les liens symboliques dans un répertoire

J'ai un lien symbolique dans mon /var/www/ qui renvoie à WordPress. Lorsque je lance la commande ls -la de la /var/www/ Le lien vers WordPress n'apparaît pas dans le répertoire. Existe-t-il un moyen de répertorier tous les liens symboliques présents dans un répertoire ?

2voto

Pour visualiser les liens symboliques dans un répertoire :

  1. Ouvrez un terminal et allez dans ce répertoire.

  2. Tapez la commande :

    ls -la

    Cela permettra de lister longuement tous les fichiers du répertoire, même s'ils sont cachés.

  3. Les fichiers qui commencent par l sont vos fichiers de liens symboliques.

0voto

Mr. Linux Points 127

Veuillez trouver ci-dessous une commande bash script pour trouver tous les liens symboliques brisés récursivement dans n'importe quel OS basé sur linux.

b=$(find / -type l); for i in $(echo $b); do file $i ; done |grep -i broken 2> /dev/null

0voto

zzapper Points 131

En utilisant zsh

ls -l *(@)
lrwxrwxrwx 1 david david 15 Nov 18 22:35 gvimrc -> /etc/vim/gvimrc
lrwxrwxrwx 1 david david 13 Nov 18 22:19 mydomains.php -> mydomains.php

0voto

saptarshi nag Points 443

Type ls -lai Vous savez que les fichiers ayant le même numéro d'inode sont des liens (durs ou mous) et cette solution fonctionne également pour les liens symboliques.

0voto

Sergiy Kolodyazhnyy Points 97292

On peut aussi le faire avec Python :

$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /path/to/dir

Exemple d'exécution :

$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /etc
/etc/vtrgb
/etc/printcap
/etc/resolv.conf
/etc/os-release
/etc/mtab
/etc/localtime

Ceci peut être étendu pour être récursif via os.walk mais il est suffisant d'utiliser la simple génération de liste pour lister les liens dans un seul répertoire comme je l'ai montré ci-dessus.

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