Man page - symlink(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pl ja ruManual
symlink
NOMDESCRIPTION
Liens magiques
Propriétés, permissions et horodatage des liens symboliques
Obtention dâun descripteur de fichier faisant rĂ©fĂ©rence Ă un liensymbolique.
Traitement des liens symboliques par les appels systĂšme et les commandes
Traitement des liens symboliques par les appels systĂšme
Commandes ne parcourant pas les arborescences de fichiers
Commandes parcourant une arborescence
VOIR AUSSI
TRADUCTION
NOM
symlink - Gestion des liens symboliques
DESCRIPTION
Les liens symboliques sont des fichiers qui agissent comme des pointeurs vers dâautres fichiers. Pour comprendre leur fonctionnement, vous devez dâabord comprendre comment fonctionnent les liens physiques.
Un lien physique (hard link) vers un fichier est indistinguable du fichier dâorigine, car câest une rĂ©fĂ©rence directe vers lâobjet sous-jacent pointĂ© par le nom originel. (Pour ĂȘtre prĂ©cis, chaque lien physique sur un fichier fait rĂ©fĂ©rence au mĂȘme numĂ©ro dâinĆud , ce numĂ©ro Ă©tant un indice dans une table dâinĆuds qui contient des mĂ©tadonnĂ©es sur tout le contenu du systĂšme de fichiers. Consultez stat (2)). Les changements dans un fichier sont indĂ©pendants du nom utilisĂ© pour faire rĂ©fĂ©rence au fichier. Les liens physiques ne peuvent pas faire rĂ©fĂ©rence aux rĂ©pertoires (pour Ă©viter le risque de boucles dans lâarborescence du systĂšme de fichiers, ce qui planterait de nombreux programmes) et ne peuvent pas rĂ©fĂ©rencer des fichiers sur un autre systĂšme de fichiers (car les numĂ©ros dâinĆud ne sont uniques que sur un mĂȘme systĂšme de fichiers).
Un lien symbolique est un fichier dâun type spĂ©cial, dont le contenu est une chaĂźne reprĂ©sentant le chemin dâaccĂšs vers un autre fichier, celui vers lequel le lien pointe. (Le contenu dâun lien symbolique peut ĂȘtre lu en utilisant readlink (2).) En dâautres termes, un lien symbolique est un pointeur vers un autre nom, pas vers le contenu sous-jacent. Pour cette raison, les liens symboliques peuvent faire rĂ©fĂ©rence aux rĂ©pertoires et peuvent franchir les frontiĂšres des systĂšmes de fichiers.
Il nây a pas dâobligation pour que le fichier dont le nom est rĂ©fĂ©rencĂ© par un lien symbolique existe. Un lien symbolique qui fait rĂ©fĂ©rence Ă un nom de fichier inexistant est dit dangling link (pendouillant).
Comme un lien symbolique et lâobjet quâil rĂ©fĂ©rence coexistent sur le systĂšme de fichiers, une confusion peut survenir pour distinguer le lien lui-mĂȘme et lâobjet rĂ©fĂ©rencĂ©. Sur des systĂšmes historiques, les commandes et les appels systĂšme adoptaient leur propres conventions pour le suivi des liens symboliques de maniĂšre arbitraire. Des rĂšgles pour une approche plus uniforme, comme elles sont implĂ©mentĂ©es sur Linux et dâautres systĂšmes, sont prĂ©sentĂ©es ici. Il est important que les applications locales se conforment aussi Ă ces rĂšgles pour que lâinterface avec lâutilisateur soit la plus cohĂ©rente possible.
Liens magiques
Il existe une classe spĂ©ciale dâobjets ressemblant aux liens symboliques connus comme « liens magiques » qui peuvent ĂȘtre trouvĂ©s dans certains pseudo-systĂšmes de fichiers tels que proc (5) (par exemple, /proc/ pid /exe et /proc/ pid /fd/ *). Au contraire des liens symboliques, les liens magiques ne sont pas rĂ©solus au travers dâune expansion de noms de chemin, mais agissent plutĂŽt comme des rĂ©fĂ©rences directes vers la propre reprĂ©sentation du noyau de la gestion de fichier. Comme tels, ces liens magiques permettent aux utilisateurs dâaccĂ©der Ă des fichiers qui ne peuvent ĂȘtre rĂ©fĂ©rencĂ©s par des chemins normaux (tels que des fichiers dĂ©liĂ©s encore rĂ©fĂ©rencĂ©s par un programme en cours dâexĂ©cution).
Parce quâils peuvent contourner les restrictions ordinaires basĂ©es sur mount_namespaces (7), les liens magiques ont Ă©tĂ© utilisĂ©s comme vecteur dâattaque dans divers exploits.
Propriétés, permissions et horodatage des liens symboliques
Le propriĂ©taire et le groupe dâun lien symbolique existant peuvent ĂȘtre modifiĂ©s en utilisant lchown (2). Lâappartenance dâun lien symbolique est importante lors de sa suppression ou de son renommage dans un rĂ©pertoire dont le bit « Sticky » est positionnĂ© (consultez inode (7)) et quand le sysctl fs.protected_symlinks est dĂ©fini (see proc (5)).
Les horodatages du dernier accĂšs et de la derniĂšre modification dâun lien symbolique peuvent ĂȘtre modifiĂ©s en utilisant utimensat (2) ou lutimes (3).
Sur Linux, les permissions associĂ©es Ă un lien symbolique ordinaire ne sont utilisĂ©es dans aucune opĂ©ration. Ces permissions sont toujours 0777 (lecture, Ă©criture et exĂ©cution pour toutes les catĂ©gories dâutilisateurs) et ne peuvent pas ĂȘtre modifiĂ©es.
Cependant, les liens magiques ne suivent pas cette rÚgle. Ils peuvent avoir un mode différent de 0777, bien que ce mode ne soit pas actuellement utilisé pour la vérification des permissions.
Obtention dâun descripteur de fichier faisant rĂ©fĂ©rence Ă un liensymbolique.
Lâutilisation des indicateurs O_PATH et O_NOFOLLOW en association pour un appel open (2) dĂ©livre un descripteur de fichier qui peut ĂȘtre transmis comme lâargument dirfd Ă des appels systĂšme tels que fstatat (2), fchownat (2), fchmodat (2), linkat (2) et readlinkat (2), afin dâagir sur des liens symboliques eux-mĂȘmes (et non sur les fichiers vers lesquels ils pointent).
Par dĂ©faut (câest-Ă -dire si lâindicateur AT_SYMLINK_FOLLOW nâest pas prĂ©cisĂ©), lorsque name_to_handle_at (2) est utilisĂ©e sur un lien symbolique, il dĂ©livre un gestionnaire pour le lien symbolique (et non pour le fichier vers lequel il pointe). On peut alors obtenir un descripteur de fichier du lien symbolique (et non du fichier vers lequel il pointe) en prĂ©cisant lâindicateur O_PATH lors dâun appel ultĂ©rieur Ă open_by_handle_at (2). De nouveau, ce descripteur de fichier peut ĂȘtre utilisĂ© dans des appels systĂšme citĂ©s prĂ©cĂ©demment pour agir sur le lien symbolique lui-mĂȘme.
Traitement des liens symboliques par les appels systĂšme et les commandes
Les liens symboliques sont traitĂ©s en agissant soit sur le lien lui-mĂȘme, soit sur lâobjet pointĂ© par le lien. Dans ce dernier cas, on dit que lâapplication ou lâappel systĂšme suit le lien. Les liens symboliques peuvent faire rĂ©fĂ©rence Ă dâautres liens symboliques, auquel cas les liens sont suivis jusquâĂ ce quâun objet qui nâest pas un lien symbolique soit rencontrĂ©, quâun lien symbolique pointant sur un fichier inexistant soit trouvĂ©, ou quâune boucle soit dĂ©tectĂ©e (la dĂ©tection des boucles est faite en dĂ©finissant une limite maximale sur le nombre de liens qui peuvent ĂȘtre suivis, et une erreur se produit si cette limite est atteinte).
Il faut considĂ©rer trois domaines dâutilisation diffĂ©rents des liens symboliques. Ce sont :
|
- |
Les liens symboliques fournis en argument des appels systĂšme sous forme de noms de fichiers. |
||
|
- |
Les liens symboliques indiquĂ©s comme arguments de la ligne de commande pour les utilitaires qui ne parcourent pas lâarborescence des fichiers. |
||
|
- |
Les liens symboliques rencontrĂ©s par les utilitaires qui traversent lâarborescence (soit indiquĂ©s sur la ligne de commande, soit rencontrĂ©s comme partie de la hiĂ©rarchie des fichiers). |
Avant de dĂ©crire le traitement des liens symboliques par les appels systĂšme et les commandes, quelques explications technologiques sont nĂ©cessaires. Ătant donnĂ© un nom de chemin de la forme a/b/c , la partie prĂ©cĂ©dant la barre oblique finale (câest-Ă -dire a/b ) est appelĂ©e la composante dirname (nom de rĂ©pertoire) et la partie suivant la barre oblique finale (câest-Ă -dire c ) est appelĂ©e la composante basename (nom de base).
Traitement des liens symboliques par les appels systĂšme
Le premier domaine est celui des liens symboliques utilisés en noms de fichiers comme argument pour les appels systÚme.
Le traitement des liens symboliques dans un nom de chemin passé à un appel systÚme est le suivant :
|
(1) |
Dans la composante du nom de rĂ©pertoire dâun chemin, les liens symboliques sont toujours suivis dans presque tous les appels systĂšme (cela est aussi vrai pour les commandes). La seule exception est openat2 (2) qui fournit des indicateurs pouvant ĂȘtre utilisĂ©s pour empĂȘcher explicitement le suivi de liens symboliques dans la composante du nom de rĂ©pertoire. |
||
|
(2) |
Sauf exceptions mentionnĂ©es ci-dessous, tous les appels systĂšme suivent les liens symboliques dans la composante du nom de base dâun chemin. Par exemple, sâil existe un lien symbolique slink qui pointe vers un fichier appelĂ© un_fichier , lâappel systĂšme open("slink" ...) renverra un descripteur de fichier faisant rĂ©fĂ©rence Ă un_fichier . |
Certains appels systĂšme ne suivent pas les liens symboliques dans la composante du nom de base dâun chemin et agissent sur le lien symbolique lui-mĂȘme. Ce sont : lchown (2), lgetxattr (2), llistxattr (2), lremovexattr (2), lsetxattr (2), lstat (2), readlink (2), rename (2), rmdir (2) et unlink (2).
Certains autres appels systĂšme suivent Ă©ventuellement les liens symboliques dans la composante du nom de base dâun chemin. Il sâagit de : faccessat (2), fchownat (2), fstatat (2), linkat (2), name_to_handle_at (2), open (2), openat (2), open_by_handle_at (2) et utimensat (2). Reportez-vous Ă leur pages de manuel pour plus de dĂ©tails. Comme remove (3) est un alias pour unlink (2), cette fonction de bibliothĂšque ne suit pas non plus les liens symboliques. Quand rmdir (2) est utilisĂ©e sur un lien symbolique, elle Ă©choue avec lâerreur ENOTDIR .
Lâappel link (2) rĂ©clame une discussion particuliĂšre. POSIX.1-2001 prĂ©cise que link (2) doit dĂ©rĂ©fĂ©rencer ancien_chemin si câest un lien symbolique. NĂ©anmoins, Linux ne le fait pas. (Par dĂ©faut, Solaris non plus, mais des options de compilation permettent dâobtenir le comportement POSIX.1-2001). POSIX.1-2008 a modifiĂ© la spĂ©cification pour permettre les deux comportements dans une implĂ©mentation.
Commandes ne parcourant pas les arborescences de fichiers
Le second domaine est celui des liens symboliques, indiqués en tant que noms de fichiers, comme argument pour des commandes ne traversant pas les arborescences.
Sauf exception mentionnée ci-dessous, les commandes suivent les liens symboliques fournis en argument de ligne de commande. Par exemple, si un lien symbolique slink pointe vers un fichier nommé un_fichier , la commande cat slink affichera le contenu du fichier un_fichier .
Notez bien que cette rĂšgle sâapplique Ă des commandes qui peuvent dans dâautres situations parcourir lâarborescence, par exemple la commande chown fichier suit cette rĂšgle, alors que chown -R fichier , qui descend lâarborescence, ne la suit pas. (Cette derniĂšre est traitĂ©e dans la troisiĂšme partie ci-dessous).
Si on dĂ©sire quâune commande agisse sur le lien symbolique lui-mĂȘme plutĂŽt quâen le suivant â par exemple si on veut que chown slink change le propriĂ©taire du fichier slink , que ce soit un lien symbolique ou non â lâoption -h doit ĂȘtre utilisĂ©e. Dans cet exemple, la commande chown root slink modifierait le propriĂ©taire du fichier rĂ©fĂ©rencĂ© par slink , tandis que chown -h root slink modifierait le propriĂ©taire de slink lui-mĂȘme.
Il y a quelques exceptions à cette rÚgle :
|
- |
Les commandes mv (1) et rm (1) ne suivent pas les liens symboliques fournis en argument, mais essayent respectivement de les renommer ou de les dĂ©truire. (Notez que lorsquâun lien symbolique fait rĂ©fĂ©rence Ă un fichier par un chemin relatif, il peut cesser de fonctionner si on le dĂ©place dans un autre rĂ©pertoire puisque le chemin relatif ne serait plus correct). |
||
|
- |
La commande ls (1) est aussi une exception Ă cette rĂšgle. Pour assurer la compatibilitĂ© avec des systĂšmes historiques (quand ls (1) ne descend pas une arborescence â câest-Ă -dire si lâoption -R nâest pas prĂ©sente), la commande ls (1) suit les liens symboliques fournis en argument si les options -H ou -L sont indiquĂ©es ou si les options -F , -d et -l ne sont pas prĂ©sentes (la commande ls (1) est la seule dont les options -H et -L modifient le comportement mĂȘme lorsquâelle ne fait pas un parcours dâarborescence). |
||
|
- |
La commande file (1) est aussi une exception Ă cette rĂšgle. Par dĂ©faut, la commande file (1) ne suit pas les liens symboliques fournis en argument. La commande file (1) ne les suit que si lâoption -L est mentionnĂ©e. |
Commandes parcourant une arborescence
Les commandes suivantes parcourent, toujours ou sur option, lâarborescence des fichiers : chgrp (1), chmod (1), chown (1), cp (1), du (1), find (1), ls (1), pax (1), rm (1) et tar (1).
Il est important de remarquer que les rĂšgles ci-dessous sâappliquent tant aux liens symboliques rencontrĂ©s durant un parcours dâarborescence quâaux liens fournis en argument de ligne de commande.
La premiĂšre rĂšgle sâapplique aux liens qui rĂ©fĂ©rencent des fichiers autres que des rĂ©pertoires. Les opĂ©rations entreprises sur ces liens sont appliquĂ©es sur les liens eux-mĂȘmes, ou alors les liens sont ignorĂ©s.
La commande rm -r slink rĂ©pertoire effacera slink , ainsi que tout lien symbolique rencontrĂ© durant le parcours dans le rĂ©pertoire , car les liens symboliques peuvent ĂȘtre effacĂ©s. En aucun cas rm (1) ne touchera au fichier rĂ©fĂ©rencĂ© par slink .
La seconde rĂšgle sâapplique aux liens symboliques qui pointent vers des rĂ©pertoires. Par dĂ©faut, ces liens ne sont jamais suivis. Cela est souvent appelĂ© un parcours « physique » par opposition Ă un parcours « logique » (oĂč les liens symboliques vers des rĂ©pertoires seraient suivis).
Certaines conventions sont (ou devraient ĂȘtre) respectĂ©es autant que possible par les commandes parcourant des arborescences de fichiers :
|
- |
Une commande peut ĂȘtre forcĂ©e Ă suivre nâimporte quel lien symbolique indiquĂ© sur la ligne de commande, quel que soit le type de fichier vers lequel il pointe, en utilisant lâoption -H (pour « half-logical »). Cette option permet dâavoir un espace de noms de la ligne de commande conforme Ă lâespace de noms logique. (Notez que pour les commandes qui ne parcourent pas toujours lâarborescence, lâoption -H sera ignorĂ©e si lâoption -R nâest pas Ă©galement prĂ©sente.) |
Par exemple, la commande chown -HR utilisateur slink parcourra la hiĂ©rarchie de fichiers dĂ©butant par le fichier pointĂ© par slink . Remarquez que lâoption -H nâest pas la mĂȘme que lâoption -h traitĂ©e prĂ©cĂ©demment. Lâoption -H permet de suivre les liens symboliques indiquĂ©s sur la ligne de commande aussi bien pour lâaction Ă exĂ©cuter que pour le parcours de lâarborescence ; tout se passe comme si lâutilisateur avait fourni le nom du fichier rĂ©fĂ©rencĂ© par le lien symbolique.
|
- |
Une commande peut ĂȘtre forcĂ©e Ă suivre les liens symboliques nommĂ©s sur sa ligne de commande, ainsi que tous les liens rencontrĂ©s durant le parcours, quel que soit le type des fichiers quâils rĂ©fĂ©rencent, en utilisant lâoption -L (pour « logical »). Cette option permet de rendre lâespace de noms en entier semblable Ă lâespace de noms logique. Notez que les commandes qui ne font pas systĂ©matiquement de parcours dâarborescence ignoreront lâoption -L si lâoption -R nâest pas prĂ©sente. |
Par exemple, la commande chown -LR utilisateur slink modifiera le propriĂ©taire du fichier rĂ©fĂ©rencĂ© par slink . Si slink pointe vers un rĂ©pertoire, chown (1) descendra lâarborescence Ă partir de ce rĂ©pertoire. En outre, si des liens symboliques sont rencontrĂ©s pendant le parcours de chown (1), ils seront traitĂ©s de la mĂȘme façon que slink .
|
- |
Une commande peut ĂȘtre forcĂ©e Ă employer le comportement par dĂ©faut en utilisant lâoption -P (pour « physique »). Cet attribut permet de rendre lâespace de noms semblable Ă lâespace de noms physique. |
Pour les commandes qui ne parcourent pas dâarborescence par dĂ©faut, les options -H , -L et -P sont ignorĂ©es si lâoption -R nâest pas prĂ©sente. De plus, vous pouvez indiquer -H , -L et -P plusieurs fois ; câest la derniĂšre option qui dĂ©terminera le comportement de la commande. Cela permet de crĂ©er des alias de commandes afin dâavoir un comportement choisi et de surcharger ce comportement en ligne de commande.
Les commandes ls (1) et rm (1) présentent des exceptions pour ces rÚgles :
|
- |
La commande rm (1) agit toujours sur le lien symbolique et jamais sur le fichier quâil rĂ©fĂ©rence. Ainsi le lien nâest jamais suivi. La commande rm (1) ne prend pas en charge les options -H , -L ou -P . |
||
|
- |
Afin dâassurer une compatibilitĂ© avec les systĂšmes historiques, la commande ls (1) agit un peu diffĂ©remment. Si une option -F , -d ou -l nâest pas prĂ©cisĂ©e, alors ls (1) suivra les liens indiquĂ©s sur la ligne de commande. Si lâoption -L est mentionnĂ©e, ls (1) suivra tous les liens symboliques, quels que soient leurs types, quâils soient fournis sur la ligne de commande ou rencontrĂ©s en parcourant lâarborescence. |
VOIR AUSSI
chgrp (1), chmod (1), find (1), ln (1), ls (1), mv (1), namei (1), rm (1), lchown (2), link (2), lstat (2), readlink (2), rename (2), symlink (2), unlink (2), utimensat (2), lutimes (3), path_resolution (7)
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .