87 votes

Comment trouver des fichiers sans liens symboliques ?

Je veux trouver des fichiers dans Linux qui suivent un certain modèle mais je ne suis pas intéressé par les liens symboliques.

Il semble qu'il n'y ait pas d'option pour l'option find pour cela.

Comment vais-je faire ?

109voto

hek2mgl Points 38787

Vérifiez le page de manuel encore ;) C'est :

find /path/to/files -type f

type f recherche uniquement les fichiers réguliers - à l'exclusion des liens symboliques.

33voto

Vittorio Milazzo Points 339
! -type l

Par exemple, si vous voulez rechercher tous les fichiers réguliers dans /usr/bin, en excluant les liens symboliques :

find /usr/bin/ \! -type l

3voto

ron.rothman Points 2970

Voulez-vous qu'il suive les liens symboliques mais ne les renvoie pas (s'ils correspondent à votre modèle) ?

find -H ?

man find
     ...
     -H      Cause the file information and file type (see stat(2)) returned for each symbolic link specified on the command line to be those of
             the file referenced by the link, not the link itself.  If the referenced file does not exist, the file information and type will be
             for the link itself.  File information of all symbolic links not on the command line is that of the link itself.

     -L      Cause the file information and file type (see stat(2)) returned for each symbolic link to be those of the file referenced by the
             link, not the link itself.  If the referenced file does not exist, the file information and type will be for the link itself.

             This option is equivalent to the deprecated -follow primary.

3voto

Nande Points 51

J'ai lu le MAN et maintenant il semble être -P De même, l'utilisation de -type r entraînerait une erreur. Je remarque aussi que le comportement par défaut est maintenant.

-P Ne jamais suivre les liens symboliques. C'est le par défaut comportement. [ ] des informations sur un fichier, et que le fichier est un lien symbolique, l'in les propriétés du lien symbolique lui-même.

1voto

Wellington1993 Points 194

Comme le dit @AquariusPower, l'utilisation de find -type f -xtype f a résolu mon problème, et maintenant je n'ai que des fichiers réels et plus de liens symboliques.

De : https://linux.die.net/man/1/find

J'ai eu :

-xtype c
La même chose que -type sauf si le fichier est un lien symbolique. Pour les liens symboliques : si le -H o -P a été spécifiée, vrai si le fichier est un fichier lien vers un fichier de type c ; si le -L a été donnée, vrai si c est "l". En d'autres termes, pour les liens symboliques, -xtype vérifie le type de le fichier qui -type ne vérifie pas.

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