0 votos

Cientos de rutas de acceso a un archivo genuino

Tengo un archivo, al que hacen referencia cientos de rutas de archivos.

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',
 ...]

Son del mismo archivo.

¿Cuál es el mecanismo que hay detrás?

1voto

David Anderson Puntos 2189

Resulta que hay enlaces simbólicos que ponen su ~ \Desktop en cada carpeta de datos. Por lo tanto, si ejecuta el comando que se muestra a continuación, la salida contendrá muchas líneas impresas. La mayoría de estas líneas mostrarán una ruta a través de un Data/Desktop enlace simbólico. Tenga en cuenta que el -L hace que la opción find para seguir los enlaces simbólicos.

find  -L  ~  -name  sample.txt  -print

Si ejecuta el comando dado a continuación, se producirá la misma salida, menos las líneas que muestran una ruta a través de un Data/Desktop enlace simbólico.

find  ~  -name  sample.txt  -print

La salida del comando anterior debe contener al menos la siguiente línea.

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

Un enlace simbólico es simplemente un archivo que contiene una cadena de caracteres. Cada entrada de directorio para tales archivos contiene una bandera que indica que el archivo es un enlace simbólico. La cadena de caracteres almacenada en un archivo de enlace simbólico puede imprimirse ejecutando la función readlink de mando. Por ejemplo, puede introducir el siguiente comando, en su ordenador.

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

Esto produciría la siguiente salida.

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

Así que cuando se siguen los enlaces simbólicos y el nombre del archivo

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

se encuentra, el Desktop se sustituye por la cadena ../../../../Desktop para producir

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

que equivale a la

~/Desktop/Dev/sample.txt

nombre del archivo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X