Как удалить непустой каталог в терминале?
Как удалить следующий каталог?
Я набрал:
rmdir lampp
Эта ошибка возникает:
rmdir: failed to remove `lampp': Directory not empty
Есть ли команда для удаления всех файлов в каталоге и удаления папки каталога?
5 ответов
Используйте следующую команду:
rm -rf lampp
Он удаляет все файлы и папки, содержащиеся в каталоге lampp
.
Если у пользователя нет разрешения на удаление папки:
Добавить sudo
в начале команды:
sudo rm -rf folderName
В противном случае без sudo
вам будет отказано в разрешении на доступ. И это хорошая практика, чтобы попытаться не использовать -f
при удалении каталога:
sudo rm -r folderName
Примечание: предполагается, что вы уже находитесь на том же уровне папки, которую хотите удалить в терминале, если нет:
sudo rm -r /path/to/folderName
FYI: вы можете использовать буквы -f
, -r
, -v
:
-
-f
= игнорировать несуществующие файлы, никогда не запрашивать -
-r
= удалить каталоги и их содержимое рекурсивно -
-v
= объяснить, что делается
rm -R lampp
Однако вам нужно быть осторожным с такой рекурсивной командой, как легко случайно удалить намного больше, чем вы планировали.
Рекомендуется всегда дважды проверять, в каком каталоге вы находитесь, и правильно ли вы вводили команду, прежде чем нажимать Enter.
Более безопасная версия
rm -R -i lampp
Добавление -i
делает его более безопасным, потому что оно будет запрашивать вас при каждом удалении. Однако, если вы удаляете много файлов, это не будет очень практичным. Тем не менее, вы можете попробовать это первым.
Примечание о -f
:
Многие люди предлагают использовать -f
(объединяя его в -Rf
или -rf
), утверждая, что он избавляется от раздражающих запросов. Однако в обычных случаях вам это не нужно, и использование этого параметра подавляет некоторые проблемы, о которых вы, возможно, do хотите узнать. Когда вы его используете, вы не будете предупреждены, если ваши аргументы предоставят несуществующий каталог или файл (ы): rm просто молча удалит что-либо. Как правило, сначала попробуйте -f
: если есть проблемы с вашими аргументами, то вы заметите. Если вы начнете получать слишком много подсказок о файлах без доступа на запись, вы можете попробовать его с помощью -f
. Кроме того, запустите команду от пользователя (или суперпользователя, использующего sudo), который имеет полные разрешения для файлов и каталогов, которые вы удаляете, чтобы предотвратить эти запросы в первую очередь.
Существует множество способов удаления каталога через режим CLI. Это зависит от того, с каким способом вам комфортно.
rm -rvf /path/to/directory
-
-r
= рекурсивно удалять каталоги и их содержимое -
-v
= объяснить, что делается -
-f
= игнорировать несуществующие файлы, никогда не запрашивать
Если вы новичок в Linux, используйте man-страницы команд ( man rm
). ) для большего количества опций и большей точности.
У меня были проблемы с этим сегодня, но я преодолел это с помощью sudo.
Предостережение: будьте уверены, что хотите удалить все, прежде чем использовать приведенную ниже команду.
$ sudo rm -R [Directory name]
Я успешно сделал это сегодня и удалил много непустых каталогов, которые я подтвердил, что мне не нужны /нужны.
Я использую 14.04 LTS
Кстати, я лично хотел удалить каталог, содержащий защищенный от записи файл /s (.git и подкаталоги), и в итоге понял, что мне также необходимо стать суперпользователем, чтобы успешно удалить эти файлы. Вот что я сделал:
#became super user
sudo su -
#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/