Так что да, как уже много раз говорилось в другом месте, имя файла может содержать практически любой символ. Но нужно сказать , что имя файла является не файл. Он имеет некоторый вес в качестве атрибута файла, поскольку для открытия файла обычно требуется имя файла, но имя файла указывает только на фактический файл. Это ссылка, которая хранится в каталоге, в котором она была записана, вместе с номером инода, что намного ближе к реальному файлу .
Итак, вы знаете, называйте это как хотите. Ядру все равно - все ссылки на файлы, которые оно будет обрабатывать, будут иметь дело с реальными номерами инодов. Имя файла предназначено для потребления человеком - если вы хотите сделать его сумасшедшим, это ваша файловая система. Здесь я сделаю некоторые сумасшедшие вещи:
Сначала я создам 20 файлов и назову их только пробелами, каждое имя файла будет на один пробел больше, чем последнее:
until [ $((i=$i+1)) -gt 20 ]
do v=$v' ' && touch ./"$v"
done
Это довольно забавно. Посмотри на мои ls
:
ls -d ./*
./ ./ ./ ./ ./
./ ./ ./ ./ ./
./ ./ ./ ./ ./
./ ./ ./ ./ ./
Теперь я собираюсь отразить этот каталог:
set -- * ; mkdir ../mirror
ls -i1qdU -- "$@" |
sh -c 'while read inum na
do ln -T "$1" ../mirror/$inum
shift ; done' -- "$@"
ls -d ../mirror/*
Вот ../mirror/
содержание:
../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
Хорошо, но, может быть, вы спрашиваете - но что в этом хорошего? Как вы можете сказать, что есть что? Как вы можете быть уверены, что связали правильный номер инода с правильным именем файла?
Что ж...
echo "heyhey" >>./' '
tgt=$(ls -id ./' ')
cat ../mirror/${tgt%% .*} \
$(ls -1td ../mirror/* | head -n1)
ВЫХОД
heyhey
heyhey
Смотрите, и номер индекса, содержащийся в нем, ../mirror/"${tgt%% .*}"
и номер ссылки, на который ссылается ссылка, ./' '
относятся к одному и тому же файлу Они описывают один и тот же файл. Они называют это, но не более того. На самом деле в этом нет ничего загадочного, только некоторые неудобства, которые вы могли бы причинить себе, но в конечном итоге это практически не повлияет на работу вашей файловой системы unix.