Вы не можете переименовать корневой каталог файловой системы, и это то, что вам нравится делать.
Если вы монтируете файловую систему NFS -с базовой точкой монтирования, вы можете переименовать ее, поскольку это позволит вам увидеть непокрытую точку монтирования.
Фон :Если что-то монтируется в запись в файловой системе, это скрывает исходный файл, но вам потребуется переименовать исходный файл. То, что вы видите, является корневым каталогом смонтированной файловой системы, и его нельзя переименовать.
bash
переменные не могут хранить байты NUL (только zsh
, хотя см. также ksh93
printf %B
и typeset -b
с использованием кодировки base64 ). Его встроенная функция read
также будет пропускать байты NUL во входных данных.
Однако здесь можно использовать:
LC_ALL=C IFS= read -rd '' -n1 c
Это считывается до одного байта из записи с разделителями NUL -. Таким образом, если $c
пусто, это означает, что либо EOF (, но тогда статус выхода read
будет не -нулевым ), либо был прочитан байт NUL.
Для обоих вы можете получить числовое значение этого байта с помощью:
LC_ALL=C printf -v value %d "'$c"
Так:
while
IFS= LC_ALL=C read -rd '' -n1 c &&
LC_ALL=C printf -v value %d "'$c"
do
echo "Got byte with value $value"
done
Будет считывать ввод по одному байту за раз до EOF и поддерживать нулевые байты.
Или всегда можно:
value=$(dd bs=1 count=1 2> /dev/null | od -An -vtu1)
Или с некоторыми od
реализациями:
value=$(od -N1 -An -vtu1)
Хотя это подразумевает разветвление дополнительных процессов и запуск внешних исполняемых файлов (, и если stdin является терминальным устройством, это не выведет его из режима icanon
, как это делает read
).