Tak więc, jak wielokrotnie stwierdzono w innym miejscu, nazwa pliku może zawierać prawie dowolny znak. Ale trzeba powiedzieć, że nazwa pliku jest nie plik. Ma on pewną wagę jako atrybut pliku, ponieważ zazwyczaj potrzebujesz nazwy pliku, aby otworzyć plik, ale nazwa pliku wskazuje tylko rzeczywisty plik. Jest to link przechowywany w katalogu, który go nagrał, wraz z numerem i-węzła - co jest znacznie bliższe rzeczywistemu plikowi .
Więc, nazywaj to jak chcesz. Jądro to nie obchodzi - wszystkie obsługiwane przez niego odwołania do plików zajmą się prawdziwymi liczbami i-węzłów. Nazwa pliku jest przeznaczona do spożycia przez ludzi - jeśli chcesz sprawić, że będzie szalona, to twój system plików. Tutaj zrobię trochę szalonych rzeczy:
Najpierw utworzę 20 plików i nadam im nazwy bez spacji, przy czym każda nazwa pliku zawiera o jedną spację więcej niż ostatnia:
until [ $((i=$i+1)) -gt 20 ]
do v=$v' ' && touch ./"$v"
done
To trochę zabawne. Spójrz na moje ls
:
ls -d ./*
./ ./ ./ ./ ./
./ ./ ./ ./ ./
./ ./ ./ ./ ./
./ ./ ./ ./ ./
Teraz mam zamiar wykonać kopię lustrzaną tego katalogu:
set -- * ; mkdir ../mirror
ls -i1qdU -- "$@" |
sh -c 'while read inum na
do ln -T "$1" ../mirror/$inum
shift ; done' -- "$@"
ls -d ../mirror/*
Oto ../mirror/
zawartość:
../mirror/423759 ../mirror/423764 ../mirror/423769 ../mirror/423774
../mirror/423760 ../mirror/423765 ../mirror/423770 ../mirror/423775
../mirror/423761 ../mirror/423766 ../mirror/423771 ../mirror/423776
../mirror/423762 ../mirror/423767 ../mirror/423772 ../mirror/423777
../mirror/423763 ../mirror/423768 ../mirror/423773 ../mirror/423778
Ok, ale może pytasz - ale co to za dobro? Jak rozpoznać, który jest który? Jak możesz być pewien, że podłączyłeś odpowiedni numer i-węzła do właściwej nazwy pliku?
Dobrze...
echo "heyhey" >>./' '
tgt=$(ls -id ./' ')
cat ../mirror/${tgt%% .*} \
$(ls -1td ../mirror/* | head -n1)
WYDAJNOŚĆ
heyhey
heyhey
Zobacz, zarówno numer ../mirror/"${tgt%% .*}"
i- węzła zawarty w, jak i ten, do którego ./' '
odwołuje się, odnoszą się do tego samego pliku. Opisują ten sam plik. Oni to nazywają, ale nic więcej. Nie ma w tym żadnej tajemnicy, tylko pewne niedogodności, które możesz zrobić dla siebie, ale które ostatecznie będą miały niewielki lub żaden wpływ na działanie twojego systemu plików Unix.