Если Вы создаете файл на UNIX/Linux со специальными символами, такой как touch \"la*
, Вы не можете удалить его с rm "la*
. Необходимо использовать inode число (Вы можете, если Вы добавляете \
перед именем я знаю, но необходимо было бы предположить как пользователь, что оно использовалось в создании файла).
Я проверил страницу справочника на комнату, но нет никакого упоминания о inode числе. Выполнение rm inodenumber
не работает также.
Какова команда для этого?
Некоторые другие методы включают:
выход из специальных символов:
[~]$rm \"la\*
используйте команду находки и только ищите текущий каталог. Команда находки может искать inode числа и имеет удобное -delete
переключатель:
[~]$ls -i 7404301 "la* [~]$find . -maxdepth 1 -type f -inum 7404301 ./"la* [~]$find . -maxdepth 1 -type f -inum 7404301 -delete [~]$ls -i [~]$
Возможно, я пропускаю что-то, но...
rm '"la*'
Так или иначе имена файлов не имеют inodes, файлы делают. Попытка удалить файл, не удаляя все имена файлов, которые указывают на него, повредит Вашу файловую систему.
Если Вы действительно хотите сделать, это - и Ваш вариант использования не действительно похоже на Вас, должны вообще, Вы могли бы попробовать средства отладки файловой системы. Если Вы готовы потерять все, которое является.
Например, для ext2/3/4 debugfs
команда имеет "kill_file" опцию, которая, кажется, берет inode. Как упомянуто в других ответах, это повредит Вашу файловую систему, поскольку будут записи каталога, указывающие на несуществующий файл. Выполнение fsck
впоследствии смогите восстанавливать это. Маловероятно, что можно сделать это в смонтированной файловой системе.
Но я настоятельно рекомендовал бы, чтобы Вы просто использовали соответствующий выход/заключение в кавычки и удалили такие файлы с постоянным клиентом rm
управляйте, как упомянуто в более раннем ответе - и использование rm -i
для дополнительной безопасности при контакте с именами файлов, содержащими globbing символы как *