Ale pevný odkaz jsem mohl vytvořit pouze v adresáři /dev a v jiných adresářích to nebylo možné.
Jak ukazuje chybová zpráva, není možné vytvořit pevný odkaz mezi různými systémy souborů; můžete vytvářet pouze měkké (symbolické) odkazy.
Pokud je například vaše /home
je v jiném oddílu než váš kořenový oddíl, nebudete moci pevně propojit /tmp/foo
do /home/user/
.
Nyní, jak zdůraznil @RichardNeumann, /dev
je obvykle připojen jako souborový systém devtmpfs. Viz tento příklad:
[[email protected] ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos_centos7-root 46110724 3792836 42317888 9% /
devtmpfs 4063180 0 4063180 0% /dev
tmpfs 4078924 0 4078924 0% /dev/shm
tmpfs 4078924 9148 4069776 1% /run
tmpfs 4078924 0 4078924 0% /sys/fs/cgroup
/dev/sda1 1038336 202684 835652 20% /boot
tmpfs 815788 28 815760 1% /run/user/1000
Proto můžete vytvářet pouze pevné odkazy na soubory v /dev
v rámci /dev
.
Pevný odkaz nelze použít k dosažení toho, co chcete, protože pevné odkazy mezi systémy souborů nefungují.
S mknod
však můžete dosáhnout toho, co chcete příkaz.
-
Spusťte
ls -l /dev/devicefile
. Měli byste vidět výstup jako tento:crw-rw-rw- 1 root root 1, 9 Mar 29 15:46 /dev/urandom
- Poznamenejte si číslo ve sloupci velikosti (
1, 9
). - Spusťte příkaz
mknod /path/to/destination c 1 9
(nahrazením požadovaných hodnot).
Proč to funguje?
Soubory zařízení jsou v podstatě pevné odkazy na abstraktní soubor implementovaný jádrem nebo ovladači jádra. I když nemůžete vytvořit pevné odkazy na objekty souborového systému z jiného souborového systému, nejedná se o objekty souborového systému, a tak, když znáte jejich hlavní a vedlejší referenční čísla, můžete na ně vytvořit odkaz z jakéhokoli systému souborů.
Pevné odkazy pouze vytvoří další položku v adresáři, ukazující na soubor (kde soubor je věc podobná souboru, například adresář). Proto pevné odkazy nemohou odkazovat na soubor v jiném souborovém systému.
Soft-links jsou v tomto případě vaším přítelem. Použijte ln -s
. Softlinks mohou procházet napříč souborovými systémy a mohou dokonce ukazovat na něco, co tam není.