Comment trouver tous les alias dans un système de fichiers donné?

5

J'aimerais éviter tout problème futur avec les alias (fichiers vides créés avec le Finder, à ne pas confondre avec les liens symboliques) que j'aurais peut-être utilisés par le passé et qui pourraient rester dans le système. J'ai découvert beaucoup de problèmes avec ce type de fichier:

  • sauvegarder (avec rsync )
  • migrer sur un autre système de fichiers (avec cp ou rsync )
  • migrer sur un autre système (avec rcp, scp ou rsync )…

Maintenant, je veux soit me débarrasser de tous, soit au moins connaître l’ampleur du risque que j’ai encore avec les autres.


Comment puis-je trouver tous les fichiers de type alias dans un système de fichiers donné en utilisant la ligne de commande (script shell) en utilisant par exemple:

  • mdfind
  • find
daniel Azuelos
la source
J'ai modifié ma réponse pour inclure en utilisant find.
user3439894
Les liens symboliques ne sont pas une source de problème. Ma question concerne les pseudonymes.
daniel Azuelos
1
S'il n'y a que des alias créés dans le Finder, j'utiliserais simplement mdfind comme il est plus approprié d'afficher explicitement des alias où find n'est pas. Tandis que find peut utiliser -xattrname avec com.apple.FinderInfo ou com.apple.ResourceFork, les deux attributs étendus donnés à un alias créé dans le Finder, il existe néanmoins de nombreux autres fichiers ayant ces mêmes attributs étendus, ce qui rend difficile la distinction entre un alias find commander. Je ne dis pas qu'il n'y a pas moyen de find, mais je n'en connais pas un qui me tombe par la tête.
user3439894

Réponses:

6

Pour trouver des alias avec mdfind, dans un terminal:

mdfind kMDItemKind="Alias"

Ceci imprimera une liste d’alias avec le nom de chemin complet.

Remarque: Ce sont des alias créés dans le Finder, pas des liens symboliques créés avec le ln commande depuis un terminal ou un script.

Utiliser find trouver des liens symboliques créés par, par exemple, ln jettes un coup d'oeil à: man find

Exemple: find / -type l

Cela va commencer dans le racine du Macintosh HD et parcourez l’ensemble du système de fichiers pour lequel vous êtes autorisé à lire et à afficher tous les liens symboliques créés par, par exemple, ln montrant le nom de chemin complet.

Pour augmenter l'exemple de commande de base lu man find.

user3439894
la source