Проблема здесь в той части, которую вы не показываете. Где-то перед этой строкой у вас есть что-то вроде этого:
filename="~/file"
Таким образом, проблема не в том, что более позднее использование $filename
заключено в кавычки, оно не заключено в кавычки, и это может привести к другим проблемам, если имя содержит пробелы.
Оболочка расширяет ~
до домашнего каталога, если это первый символ слова. Он не расширяется, если является результатом раскрытия переменной.
Вы можете использовать $HOME
вместо~
:
filename=$HOME/file
sed -i "$3d" $filename
или лучше с кавычками:
filename="$HOME/file"
sed -i "$3d" "$filename"
В томе много мелких файлов? Возможно, у вас закончились иноды.
Вы можете проверить с помощьюdf -ih /zhome
Это похоже на сетевое монтирование --это должно работать, если это NFS, но другие типы (cifs, особенно ), могут не работать, и в этом случае вы можете запустить команду df -ih
локально на машина с таким объемом.
Как оказалось, проблема связана не с INode, а с квотами, как указал @James в начале. df
, который я разместил в вопросе, показывает пространство для всех пользователей HPC, а не для одного пользователя, как я думал изначально.
Спасибо @James.