Вопрос: Как удалить непустой каталог в терминале?


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

Я набрал:

rmdir lampp

Эта ошибка возникает:

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

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


532
2017-11-16 04:37


Источник


Я не могу удалить каталог, например «Новая папка», используя все приведенные выше подробные команды. Это двойное слово. Но я хочу удалить этот каталог. Любые предложения будут приветствоваться. Т.Дивакара, Бангалор, Индия
Его пустое пространство в имени файла, попробуйте использовать «кавычки»> rmdir «Новая папка» <, затем папку с файлами или использовать escape-символы для недопустимых символов. - Ken Mollerup
Просто делать rm -r lampp Сделаю. - John Strood


Ответы:


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

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 = объяснить, что делается

743
2017-11-16 05:19



По моему скромному мнению, это хорошая практика никогда не добавлять «f» при первой попытке. Его цель - игнорировать некоторые предупреждения, которые могут быть важны, особенно если вы случайно сделали это в / из неправильного каталога. По-моему, лучше попробовать без «f» сначала, только если вы столкнулись с множеством предупреждающих подсказок, и вы уверены, что все в порядке, чтобы игнорировать их всех, Ctrl + C и повторить команду с помощью команды " е». - thomasrutter
@BKSpurgeon нет, если вы случайно набираете --no-preserve-root слишком, - muru
@thomasrutter ... Согласитесь. Владелец файла «xxx»: корень  и группа: корень может быть удалена с помощью -f переключатель; и без Судо, Это сообщение без -f: "rm: удалить обычный файл с защитой от записи '/home/william/.cache/netbeans/v08.01/tmp/xxx'? _ ". _Нажмите осторожно. - will


rm -R lampp

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

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

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

rm -R -i lampp

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

Обратите внимание на  -f  опция:

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


89
2017-11-16 04:56



Примечание: строчные буквы -r также может использоваться и имеет тот же эффект. Я использую только прописные буквы -R потому что это согласуется с другими командами, которые я использую, например grep а также chmod, некоторые из которых поддерживают только верхний регистр. - thomasrutter
Это работало для меня, используя adb (мост отладки android) на Android. Попробовал rm -rf, но это не сработало. Пришлось использовать rm -R. Благодарю. - raddevus


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

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

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


21
2017-11-16 05:38





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

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

$ sudo rm -R [Directory name]

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

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


-2
2017-09-28 23:00



«SUDO» - это не команда - «судо». Тем не менее, вы не используете sudo для удаления непустого каталога, вы используете его для удаления файла, который не принадлежит вам. Выполнение этого, конечно, опасно и не очень умно, поскольку вы не должны слепо удалять файлы, которыми вы не владеете. - Marty Fried


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

#became super user
sudo su -

#deleted contents of, and then the directory, harvey_snake/
rm -R harvey_snake/

-3
2017-09-17 17:35



Я не думаю, что вам нужно sudo su Вот. Просто префикс rm команду с sudo, Для безопасности это хорошая практика (по словам сторонников sudo) не оставаться в корневой строке, когда это не необходимо. - thomasrutter
Кроме того, будьте очень уверены, в каком каталоге вы находитесь, если вы sudo rm -r, - Tony Martin
Вы можете сделать команду root-relative (/directory_name), поэтому не может быть никаких сомнений в том, какой каталог вы удаляете. - Yaakov Ainspan