Невозможно "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)
Другие вопросы по тегам