Quindi sì, come affermato più volte altrove, un nome file può contenere quasi tutti i caratteri. Ma bisogna dire che un nome file non è un file. Ha un certo peso come attributo di file in quanto in genere è necessario un nome file per aprire un file, ma il nome di un file punta solo al file effettivo. È un collegamento, memorizzato nella directory che lo ha registrato, accanto al numero dell'inode - che è un'approssimazione molto più vicina a un file reale .
Quindi, lo sai, chiamalo come vuoi. Al kernel non importa: tutti i riferimenti ai file che gestirà gestiranno comunque i numeri di inode reali. Il nome del file è una cosa per il consumo umano - se vuoi renderlo pazzo, beh, è il tuo filesystem. Qui, farò alcune cose folli:
Per prima cosa creerò 20 file e li nominerò con nient'altro che spazi, ogni nome file che contiene uno spazio in più rispetto all'ultimo:
until [ $((i=$i+1)) -gt 20 ]
do v=$v' ' && touch ./"$v"
done
Questo è abbastanza divertente. Guarda il mio ls
:
ls -d ./*
./ ./ ./ ./ ./
./ ./ ./ ./ ./
./ ./ ./ ./ ./
./ ./ ./ ./ ./
Ora rispondo a questa directory:
set -- * ; mkdir ../mirror
ls -i1qdU -- "$@" |
sh -c 'while read inum na
do ln -T "$1" ../mirror/$inum
shift ; done' -- "$@"
ls -d ../mirror/*
Ecco ../mirror/
i contenuti:
../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, ma forse lo stai chiedendo - ma a che serve? Come puoi sapere quale è quale? Come puoi essere sicuro di aver collegato il numero di inode giusto al nome di file giusto?
Bene...
echo "heyhey" >>./' '
tgt=$(ls -id ./' ')
cat ../mirror/${tgt%% .*} \
$(ls -1td ../mirror/* | head -n1)
PRODUZIONE
heyhey
heyhey
Vedi, sia il numero di inode contenuto in ../mirror/"${tgt%% .*}"
che quello a cui fa riferimento si ./' '
riferiscono allo stesso file. Descrivono lo stesso file. Lo chiamano, ma niente di più. Non c'è alcun mistero, in realtà, solo qualche inconveniente che potresti fare per te stesso, ma che alla fine avrà poco o nessun effetto sul funzionamento del tuo filesystem unix.