Как мне удалить папку?

71

Я новый пользователь и пытаюсь удалить определенную папку. Я использую sudo rm /path/, но это не работает. Какую команду правильно использовать?

Это файл catolog, который я пытаюсь удалить, но получаю сообщение, что оно пустое.

деревенщина
источник

Ответы:

89

Убедитесь, что папка действительно пуста (там могут быть скрытые файлы / папки). Посмотрите на содержимое файла еще раз с

sudo ls -lha /path/

Если вы абсолютно уверены, что он не содержит ничего, что вы хотите иметь (включая подкаталоги), удалите его с помощью

sudo rm -r -f /path/
  • -rпредназначен для рекурсии , поэтому он удалит папку и подпапки, даже если он не пустой
  • -fдля силы (это может быть ненужным).
Phoibos
источник
@EliranMalka Этот -fфлаг не требуется для rmудаления элементов, непосредственно содержащихся в указанной папке, что, как я полагаю, означает «адрес содержимого папки». Вместо этого -fозначает силу , вызывая rmникогда не запрашивать подтверждение, даже если файл, который должен быть удален, не имеет разрешения на запись ( rm: remove write-protected regular file ‘foo’?), а также заставляет rmне предупреждать о попытке удалить файл, который уже не существует. Лучше использовать -fфлаг только тогда, когда это действительно необходимо. rm -rбез -fабсолютно ничего «адрес содержимого папки.»
Элия ​​Каган
Wat? я, честно говоря, не знаю, что я говорил ... забудь об этом :)
Элиран Малка
Я должен был удалить ведущий / заставить его работать на меня. то есть:sudo rm -r -f path/
Элон Зито
16

Стоит отметить, что папка должна быть пустой, затем выполните следующую команду

rmdir directory_name

Следует также отметить, что вводимая вами команда не должна начинаться с косой черты (/), если папка не находится в корневом каталоге.

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

rm -rf directory_name

Приветствия.

tmwanik
источник
11

Для новичка я бы не рекомендовал приобретать привычку использовать rm -Rfили rm -r -f, это рано или поздно укусит вас в лицо. Безопаснее было бы создать общесистемный псевдоним. Откройте терминал: Ctrl+ Alt+ T, затем введите:

alias rm='rm -i'

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

Но в смысле вопроса ответ такой, как здесь дано, используйте -fдля стирания папки.

Гленн Плас
источник
3

Если вы уверены, что каталог существует, то:

(sudo) rm -rfv /path/

Чтобы удалить весь каталог в ваши папки и файлы

KakashiSan
источник
1
Не используйте пробелы в путях, так как вы можете попытаться рекурсивно удалить всю файловую систему/
cauon
работал на меня. Я использовал для удаления папки hadoop <code> sudo rm -rfv hadoop / </ code>
Sumit Ramteke
2

Если вы хотите удалить все файлы в каталоге и просто хотите сохранить каталог или использовать некоторые файлы (с -iфлажком вы можете сохранить файл или удалить его).

rm -i *

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

Если вам нужно удалить подкаталоги в родительском каталоге, используйте:

rm -rf NameOfDirectory
OmiPenguin
источник