Невозможно & ldquo; rm & rdquo; файл с именем & ldquo; () -. & rdquo; из-за & ldquo; Нет такого файла или каталога & rdquo;

Сценарий, который я написал, назвал файл "() -." в соответствии с 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" )

Спасибо за любые help.

Работает: Ubuntu 12.04 LTS Server Edition

1
задан 3 December 2012 в 21:31

4 ответа

Из терминала ... Сначала давайте проверим, прежде чем пытаться. Создайте аналогичный файл с помощью этой команды:

touch \(\)

Затем, чтобы удалить этот файл:

rm \(\)

Символ \ используется для специальных символов.

В вашем случае, пока файл является единственным файлом, начинающимся с (), вы должны использовать эту команду

rm -i \(\)*

-i делает его интерактивным (запрашивает ваше разрешение). [ 119]

0
ответ дан 3 December 2012 в 21:31

В таких случаях я обычно использую завершение табуляции, чтобы убедиться, что все экранировано правильно. Шаги будут:

  • открыть терминал и перейти к папке с неверным именем файла в нем
  • типа «rm \» (обратный слеш с одним пробелом)
  • хит tab
  • , который должен расширить имя файла с необходимыми экранированными значениями

Предполагается, что это единственное имя файла, которое начинается с пробела - если больше Во-первых, вам может потребоваться вручную ввести первые несколько символов и экранировать их, чтобы можно было различить, какой из них вы имеете в виду.

0
ответ дан 3 December 2012 в 21:31

Альтернативное решение (даже если правильное использование rm может быть предпочтительным) состоит в использовании полуночного командира, например

$ sudo apt-get install mc
$ mc

Затем

  • перейдите в каталог, содержащий файл (используйте стрелки вверх / вниз для выбора каталогов и введите для них cd),
  • выберите файл, который вы хотите удалить (CTRL-T)
  • удалить файл (F8)
0
ответ дан 3 December 2012 в 21:31

Поскольку имя файла содержит пробелы, его необходимо включить в кавычки.

Одна из проблем, почему вы не можете удалить файл, заключается в том, что у вас могут не быть разрешения на это.

Так что попробуйте sudo rm " () - .".

Это должно сработать. Также обратите внимание на пробел после '.'

0
ответ дан 3 December 2012 в 21:31

Другие вопросы по тегам:

Похожие вопросы: