Невозможно "rm" файл с именем "() - ." из-за "Нет такого файла или каталога"
Сценарий, который я написал, назвал файл "() - ." в соответствии с Filezilla. Filezilla не удалось удалить его с сервера, поэтому я попытался "rm "() - ."Изнутри содержащейся папки и получил"rm: не удаляется `() - .': Нет такого файла или каталога". Затем я использовал "ls", который показывает...
() - . 03_The_Kill_30_Seconds_to_Mars.mp3 Crooked X (Crooked X) - 08 Nightmare.mp3
01 Attack - 30 Seconds to Mars.mp3 03 Wave of Mutilation - Pixies.mp3 Danzig (Danzig) - 01 Twist Of Cain.mp3
Он перечисляет рассматриваемый файл, хотя здесь, похоже, он может содержать начальный пробел и два пробела между "-" и ".". Поэтому я попытался "rm" многих комбинаций пробелов, смешанных между другими персонажами, но безуспешно.
Я также попытался переименовать его, но с той же ошибкой.
Мой запасной вариант - заменить его файлом 0KB с тем же именем, но я бы предпочел удалить его (читай - я ОКР, и меня раздражает, что он появляется в "ls")
Спасибо за любую помощь.
Работает: Ubuntu 12.04 LTS Server Edition
4 ответа
Из терминала... Сначала попробуем, прежде чем пытаться. Создайте похожий файл с помощью этой команды:
touch \(\)
Затем, чтобы удалить этот файл:
rm \(\)
\ Символ используется для специальных символов.
В вашем случае, пока файл является единственным файлом, который начинается с (), вы должны использовать эту команду
rm -i \(\)*
-i делает его интерактивным (спрашивает вашего разрешения).
В таких случаях я обычно использую завершение табуляции, чтобы убедиться, что все экранировано правильно. Шаги будут:
- откройте терминал и перейдите к папке с неверным именем файла
- введите "rm \ " (обратный слеш с одним пробелом)
- удар
tab - это должно расширить имя файла с необходимыми выходами
Предполагается, что это единственное имеющееся у вас имя файла, начинающееся с пробела - если их больше одного, вам может потребоваться вручную ввести первые несколько символов и экранировать их, чтобы можно было различить, какое из них вы имеете в виду.
Так как имя файла содержит пробелы, его необходимо включить в кавычки.
Одна из проблем, почему вы не можете удалить файл, заключается в том, что у вас могут не быть разрешения на это.
Так что постарайтесь sudo rm " () - .",
Это должно сделать свое дело. Также обратите внимание на пробел после '.'
Альтернативное решение (даже при правильном использовании rm может быть предпочтительным) использовать полночь командир, например,
$ sudo apt-get install mc
$ mc
Затем,
- переместитесь в каталог, содержащий файл (используйте стрелки вверх / вниз, чтобы выбрать каталоги и введите
cdим), - выберите файл, который вы хотите удалить (CTRL-T)
- удалить файл (F8)