Как удалить непустую директорию в Терминале?

Как удалить следующий каталог?

Я набрал:

rmdir lampp

Эта ошибка появляется:

rmdir: failed to remove `lampp': Directory not empty

Есть ли команда для удаления всех файлы в каталоге и удалить папку каталога?

638
задан 4 August 2014 в 21:37

5 ответов

Используйте следующую команду:

rm -rf lampp

Удаляет все файлы и папки, содержащиеся в каталоге lampp.

Если у пользователя нет прав на удаление папки:

Добавьте sudo в начале команды:

sudo rm -rf folderName

В противном случае, без sudo вы будет возвращено разрешение отказано. И хорошей практикой является попытка не использовать -f при удалении каталога:

sudo rm -r folderName

Примечание: это предполагает, что вы уже находитесь на том же уровне папки, которую хотите удалить в терминале, если не:

sudo rm -r /path/to/folderName

К вашему сведению: вы можете использовать буквы -f, -r, -v:

  • -f = игнорировать несуществующие файлы, никогда побудить
  • -r = рекурсивно удалить каталоги и их содержимое
  • -v = объяснить, что делается
0
ответ дан 4 August 2014 в 21:37
rm -R lampp

Тем не менее, вам нужно быть осторожным с такой рекурсивной командой, поскольку легко случайно удалить намного больше, чем вы предполагали.

Рекомендуется всегда дважды проверять, в каком каталоге вы находитесь, и правильно ли вы ввели команду, прежде чем нажимать Enter.

Более безопасная версия

rm -R -i lampp

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

Примечание о опции -f :

Многие люди предлагают использовать -f (объединяя его в -Rf или -rf), утверждая, что это избавляет от надоедливых подсказок. Однако в обычных случаях вам это не нужно, и его использование подавляет некоторые проблемы, о которых вы, вероятно, действительно хотите знать. Когда вы используете его, вы не будете предупреждены, если ваши аргументы содержат несуществующий каталог или файл (ы): rm просто молча не сможет ничего удалить. Как правило, попробуйте сначала без -f: если есть проблемы с вашими аргументами, то вы заметите. Если вы начинаете получать слишком много запросов о файлах без прав записи, то вы можете попробовать это с -f. В качестве альтернативы, запустите команду от пользователя (или суперпользователя, использующего sudo), у которого есть полные права доступа к файлам и каталогам, которые вы удаляете, чтобы в первую очередь предотвратить эти запросы.

0
ответ дан 4 August 2014 в 21:37

Кстати, я лично хотел удалить каталог, содержащий защищенный от записи файл / s (.git и подкаталоги), и в конце концов понял, что мне также нужно стать суперпользователем, чтобы успешно удалить эти файлы. Вот что я сделал:

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/
0
ответ дан 4 August 2014 в 21:37

У меня были некоторые проблемы с этим сегодня, но я преодолел это с помощью sudo.

Предостережение: будьте уверены, что вы хотите полностью удалить объект, прежде чем использовать приведенную ниже команду.

$ sudo rm -R [Directory name]

Я успешно сделал это сегодня и удалил много непустых каталогов, которые, как я подтвердил, мне не нужны / не нужны.

Я использую 14.04 LTS

0
ответ дан 4 August 2014 в 21:37

Существует множество способов удалить каталог в режиме CLI. Это зависит от того, как вам удобно.

rm -rvf /path/to/directory  
  • -r = рекурсивно удалять каталоги и их содержимое
  • -v = объяснять, что делается
  • -f = игнорировать несуществующие файлы, никогда не запрашивать

Если вы новичок в Linux, используйте справочные страницы команд ( man rm ) для большей опции и большей точности.

0
ответ дан 4 August 2014 в 21:37

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

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