0 votes

Des centaines de chemins d'accès à un fichier authentique

J'ai un fichier, auquel des centaines de chemins de fichiers font référence.

In [96]: len(paths_list)
Out[96]: 191
In [97]: paths_list
Out[97]:
['~/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.CloudPhotosConfiguration/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.PressAndHold/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.iCal.CalendarNC/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.languageassetd/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.photos.VideoConversionService/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.iCal/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.share.Video.upload-Youku/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.QuickTimePlayerX/Data/Desktop/Dev/sample.txt',
 '~/Library/Containers/com.apple.PassKit.PaymentAuthorizationUIExtension/Data/Desktop/Dev/sample.txt',
 ...]

Ils sont du même fichier.

Quel est le mécanisme derrière cela ?

1voto

David Anderson Points 30783

Il existe des liens symboliques qui mettent votre ~ \Desktop dans chaque dossier de données. Ainsi, si vous exécutez la commande indiquée ci-dessous, la sortie contiendra de nombreuses lignes imprimées. La plupart de ces lignes indiqueront un chemin d'accès à un fichier Data/Desktop lien symbolique. Remarque, le -L l'option fait en sorte que le find pour suivre les liens symboliques.

find  -L  ~  -name  sample.txt  -print

Si vous exécutez la commande ci-dessous, la même sortie sera produite, moins les lignes montrant un chemin à travers une Data/Desktop lien symbolique.

find  ~  -name  sample.txt  -print

La sortie de la commande ci-dessus doit contenir au moins la ligne suivante.

/Users/YourUsername/Desktop/Dev/sample.txt

Un lien symbolique est simplement un fichier contenant une chaîne de caractères. Chaque entrée de répertoire pour de tels fichiers contient un drapeau indiquant que le fichier est un lien symbolique. La chaîne de caractères stockée dans un fichier de lien symbolique peut être imprimée en exécutant la commande readlink commande. Par exemple, vous pouvez entrer la commande suivante, sur votre ordinateur.

readlink  ~/Library/Containers/com.apple.CloudPhotosConfiguration/Data/Desktop

Cela produirait le résultat suivant.

../../../../Desktop

Ainsi, lorsque des liens symboliques sont suivis et que le nom du fichier

~/Library/Containers/com.apple.CloudPhotosConfiguration/Data/Desktop/Dev/sample.txt

est rencontrée, la Desktop est remplacée par la chaîne de caractères ../../../../Desktop pour produire

~/Library/Containers/com.apple.CloudPhotosConfiguration/Data/../../../../Desktop/Dev/sample.txt

ce qui équivaut à la

~/Desktop/Dev/sample.txt

nom du fichier.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X