Я изучил эту страницу ( Как удалить один файл из каталога / usr? ) и попробовал
sudo rm /usr/share/applications/Eclipse Mars C/C++.desktop
в терминале, но это не сработало.
Я думаю, причина в том, что я использую другую версию (у меня Ubuntu 14.04).
Есть ли какое-либо решение или какая-либо другая команда для Ubuntu 14.04 для удаления ненужных файлов?
Это потому, что имя файла содержит пробелы. Поэтому команда rm
интерпретирует ее как множественные аргументы, что не предназначено и, очевидно, дает сбой.
Вы должны поместить имя файла в кавычки, чтобы передать его в качестве единственного аргумента:
sudo rm "/usr/share/applications/Eclipse Mars C/C++.desktop"
Но, как особенно подчеркнул @JacobVlijm, Eclipse Mars C/C++.desktop
не является допустимым именем файла, поскольку единственный символ, который не может быть включен в имена файлов, потому что он разделяет каталоги: /
(косая черта).
Если команда, как описано выше, действительно работает, это означает, что у вас есть файл C++.desktop
внутри каталога /usr/share/applications/Eclipse Mars C
, что маловероятно, поскольку это не рекомендуемая структура для каталогов .../applications
.
Но если мы предположим, что этот файл действительно существует, как описано в предыдущем параграфе, есть другой возможный способ правильно ввести имя файла. Вы можете экранировать все пробелы с помощью \
(обратная косая черта) вместо указания полного имени в кавычках:
sudo rm /usr/share/applications/Eclipse\ Mars\ C/C++.desktop
Но обратите внимание, что rm
удаляет только файлы, но не каталоги. Поскольку мы предполагаем (потому что все остальное теоретически невозможно), что Eclipse Mars C/C++.desktop
- это не файл, а файл в подкаталоге, мы еще не достигли того, чего хотим, поскольку все еще был бы (вероятно, пустой) каталог [ 1112] осталось. Чтобы также удалить этот подкаталог и все содержащиеся в нем файлы (чтобы вы могли пропустить приведенные выше команды, чтобы удалить только файл), мы должны использовать один из следующих вариантов команд:
sudo rm -r "/usr/share/applications/Eclipse Mars C"
sudo rm -r /usr/share/applications/Eclipse\ Mars\ C
Обратите внимание, что теперь мы не t относится к имени файла, но только к имени каталога. И мы используем параметр -r
для rm
, что означает «рекурсивное удаление».
Попробуйте ввести команду следующим образом:
sudo rm /usr/share/applications/Eclipse\ Mars\ C
И нажмите TAB kbd>. Он будет автоматически завершен, после чего вы должны выполнить команду, и она будет удалена. Помещение в кавычки МОЖЕТ работать, но в названии также есть /
, так что это может привести к ошибкам, поэтому лучше позволить Bash обработать его для вас.
Попробуйте:
sudo rm /usr/share/applications/Eclipse\ Mars\ C\/C++.desktop
Или просто позвольте терминалу написать имя, набрав:
sudo rm /usr/share/applications/Eclipse
и нажав TAB kbd>, если я неправильно с обратной косой чертой