"Raccourci" est un concept purement Windows. C'est un fichier ordinaire (avec .lnk
) qui contient une référence à un autre fichier ou dossier. L'Explorateur Windows et d'autres programmes savent comment ouvrir le fichier réel en lisant les informations de référence du fichier de raccourci, tout comme ils savent comment ouvrir un fichier de type .pdf
o .mp4
fichier. Les autres systèmes d'exploitation ne savent pas ce qu'est un .lnk
est, car le phénomène de montage des partitions et donc des chemins de fichiers est différent selon les systèmes d'exploitation.
Au niveau du système de fichiers, le système NTFS de Windows prend en charge points de jonction , liens symboliques y liens solides ( 1 ) . Mais GRAS famille (y compris exFAT
) ne supporte aucun ( 2 ) .
Android est basé sur le noyau Linux. Les systèmes de fichiers natifs de Linux (comme ext4
) supportent les liens durs et les liens souples (symboliques). Pour les systèmes de fichiers non natifs (comme FAT
), cela dépend du pilote du système de fichiers. exfat
(pour exFAT
) prend en charge les liens symétriques, mais les systèmes de fichiers basés sur FUSE exfat-fuse
ne le fait pas. Tout comme l'ancien vfat
(pour FAT[N]
systèmes de fichiers). Nouveau sdfat
(pour FAT[N]
/ exFAT
) de Samsung dispose d'une prise en charge optionnelle des liens symboliques pour les FAT[N]
ainsi que les systèmes de fichiers. Après MS en libre accès exFAT
Le pilote principal de Linux est également basé sur sdfat
( 3 ) .
Mais ce n'est pas tout. Les cartes SD externes sont généralement formatées en tant que FAT32
o exFAT
Ils peuvent donc prendre en charge les liens symboliques en fonction du pilote utilisé. Mais Android n'expose pas le système de fichiers réel aux applications, il est émulé à l'aide des éléments suivants FUSE o sdcardfs
. L'émulation est une autre histoire tordue (essentiellement un système de fichiers sans permission pour rendre possible le partage de fichiers entre différentes applications/UIDs), voir les détails dans Le parcours de stockage d'Android y Qu'est-ce que /storage/emulated/0/ ? .
Les pilotes FUSE peuvent prendre en charge les liens symboliques (si le système de fichiers sous-jacent le fait), mais L'implémentation FUSE d'Android ne le fait pas. Il en est de même pour le noyau sdcardfs
mise en œuvre .
En résumé, dans la plupart des cas, vous ne pouvez pas créer de liens symboliques sur des cartes SD externes ou internes. Vous obtiendrez "Opération non autorisée" o "Fonction non mise en œuvre" ou des erreurs similaires. Sur les appareils enracinés, une alternative couramment utilisée est bind-mounts. Voir les détails dans Comment puis-je faire un lien symbolique (ou équivalent) à l'intérieur de /storage/emulated/0 ?