Я только что заметил, что у меня есть файл с именем ~
в моем ~
-directory.
$ ls -la ~
...
-rw-r----- 1 x1 x1 733962240 Mar 1 17:55 ~
...
Любая идея, как я могу mv
или rm
это?
linux
bash
filesystems
scrrr
источник
источник
Ответы:
Практически идеальное решение для файлов, которые нельзя удалить обычными средствами:
В первом столбце будет показан номер индекса файлов.
Это удалит файл с указанным номером inode после проверки.
источник
-delete
вместо-exec
, а затем понял, что вы используете,rm -i
что является хорошей идеей, поэтому я откатился назад. Сожалею.Вы должны иметь возможность ссылаться на этот файл как
~/~
(без кавычек), потому что расширение тильды применяет тильду (~
) только в самом начале слова.источник
rm ./~
, по той же причине, по которой вы сказали./~
буквально означает «файл или папку с именем~
в текущем каталоге» . Нет таких хаков, как escape-символы или ссылки на inode../~
делает. Спустя пять лет моя память немного размыта, но я думаю, что именно поэтому я предложил,~/~
а не более нормальный./~
: вопрос конкретно относится к «файлу, названному~
в домашнем каталоге [OP's] »; не "в текущем каталоге".Цитируйте это (
rm '~'
) или избегайте этого (rm \~
).Это всегда либо один из них (также, например,
$
), либо add,--
чтобы имя файла не интерпретировалось как аргумент:rm -- -i
удаляет файл с именем-i
; также полезно,rm -- *
когда вы хотите удалить все файлы в текущем каталоге: не случайно,rm -f *
только потому, что файл назван так.источник
--
только останавливает следующие аргументы, интерпретируемые как параметры - это не мешает оболочке выполнять расширение (например*
), что и происходит здесь. (Я знаю, что вы предложили это в качестве альтернативы для других ситуаций, но было бы неплохо предупредить.)