Как удалить файл из usr / share / apps на ubuntu 14.04

Я изучил эту страницу ( Как удалить один файл из каталога / usr? ) и попробовал

sudo rm /usr/share/applications/Eclipse Mars C/C++.desktop 

в терминале, но это не сработало.

Я думаю, причина в том, что я использую другую версию (у меня Ubuntu 14.04).

Есть ли какое-либо решение или какая-либо другая команда для Ubuntu 14.04 для удаления ненужных файлов?

0
задан 13 April 2017 в 15:23

3 ответа

Это потому, что имя файла содержит пробелы. Поэтому команда 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, что означает «рекурсивное удаление».

0
ответ дан 13 April 2017 в 15:23

Попробуйте ввести команду следующим образом:

sudo rm /usr/share/applications/Eclipse\ Mars\ C

И нажмите TAB . Он будет автоматически завершен, после чего вы должны выполнить команду, и она будет удалена. Помещение в кавычки МОЖЕТ работать, но в названии также есть /, так что это может привести к ошибкам, поэтому лучше позволить Bash обработать его для вас.

0
ответ дан 13 April 2017 в 15:23

Попробуйте:

sudo rm /usr/share/applications/Eclipse\ Mars\ C\/C++.desktop

Или просто позвольте терминалу написать имя, набрав:

sudo rm /usr/share/applications/Eclipse

и нажав TAB , если я неправильно с обратной косой чертой

0
ответ дан 13 April 2017 в 15:23

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

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