Удалить непустую директорию linux

Как удалять файлы и каталоги с помощью командной строки Linux

Существует несколько команд, которые вы можете использовать для удаления каталога Linux. Рассмотрим их все более подробно. Самый очевидный вариант – это утилита rmdir. Но с помощью нее можно удалять только пустые папки:

Другая команда, которую можно применить – это rm. Она предназначена для удаления файлов Linux, но может использоваться и для папок если ей передать опцию рекурсивного удаления -r:

Такая команда уже позволяет удалить непустой каталог Linux. Но, можно по-другому, например, если вы хотите вывести информацию о файлах, которые удаляются:

Команда -R включает рекурсивное удаление всех подпапок и файлов в них, -f – разрешает не удалять файлы без запроса, а -v показывает имена удаляемых файлов. В этих примерах я предполагаю что папка которую нужно удалить находится в текущей рабочей папке, например, домашней. Но это необязательно, вы можете указать полный путь к ней начиная от корня файловой системы:

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

find . -type d -name “моя_папка” -exec rm -rf <> ;

Подробнее про команду find смотрите в отдельной статье. Если кратко, то -type d указывает, что мы ищем только папки, а параметром -name задаем имя нужных папок. Затем с помощью параметра -exec мы выполняем команду удаления. Таким же образом можно удалить только пустые папки, например, в домашней папке:

find ~/ -empty -type d -delete

Как видите, в find необязательно выполнять отдельную команду, утилита тоже умеет удалять. Вместо домашней папки, можно указать любой нужный вам путь:

find /var/www/public_html/ -empty -type d -delete

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

find /var/www/public_html/ -empty -type d | wc -l

Другой способ удалить папку linux с помощью find – использовать в дополнение утилиту xargs. Она позволяет подставить аргументы в нужное место. Например:

find ~/ -type f -empty -print0 | xargs -0 -I <> /bin/rm “<>”

Опция -print0 выводит полный путь к найденному файлу в стандартный вывод, а затем мы передаем его команде xargs. Опция -0 указывает, что нужно считать символом завершения строки , а -I – что нужно использовать команду из стандартного ввода.

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

Читайте также:  How to install jre on linux

Теперь для удаления каталога Linux используйте такую команду:

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

Как удалить каталог в linux через терминал

Как удалить пустую папку в Linux через терминал

Если вам нужно удалить пустую папку в Linux через терминал, то для этого проще всего использовать команду rmdir. Данная команда используется для удаления пустых папок из файловой системы Linux. Каталоги с файлами или другими каталогами данная команда не удаляет.

Синтаксис команды rmdir выглядит следующим образом:

rmdir [-p] [-v | –verbose] [–ignore-fail-on-non-empty] directories …

Разберем доступные параметры подробней:

rmdir –help Получение справки о команде rmdir rmdir -p Удаление всех пустых папок по всему указанному пути. rmdir -v или rmdir –verbose Вывод подробной информации о всех удаляемых объектах. rmdir –ignore-fail-on-non-empty Игнорирование ошибок, которые возникают при попытке удаления не пустых папок.

Для того чтобы просто удалить пустую папку нужно ввести «rmdir foldername». Где «foldername» это название удаляемого объекта. При желании можно удалить сразу несколько папок, для этого достаточно перечислить их через пробел.

Если необходимо удалить каталог, в котором есть другие каталоги (без файлов), то можно воспользоваться параметром «-p». Для этого нужно ввести «rmdir -p» и указать полный путь. Например, если в каталоге folder1 есть другой каталог folder2, то мы можем удалить их сразу одной командой «rmdir -p folder1/folder2».

При использовании параметра «-v» в консоль будет выведена подробная информация о процессе удаления каталогов.

А при использовании параметра «ignore-fail-on-non-empty» команда будет игнорировать ошибки, которые будут возникать при попытке удаления непустых каталогов.

Нужно отметить, что также существует команда «mkdir», которая предназначена для создания папок и обладает точно таким же синтаксисом.

С ее помощью вы можете создать папки по одной или целым деревом (при использовании параметра «-p»).

Как удалить папку с содержимым (с файлами) в Linux

Если нужно удалить папку с каким-то содержимым, например, с файлами, то тут уже нужно использовать команду «rm». Данная Linux команда предназначена для удаления файлов, но с ее помощью можно удалять и каталоги, если использовать параметр «-r», который включает рекурсивное удаление.

Синтаксис команды rm выглядит следующим образом:

Разберем основные параметры команды rm:

-f, –force Игнорировать несуществующие файлы, ничего не спрашивать. -i Спрашивать перед каждым удалением. -I Спрашивать перед удалением более чем 3 файлов и при использовании рекурсивного удаления. -r, -R, –recursive Удаление каталогов и их содержимого рекурсивно. -v, –verbose Вывод информации об удаляемых каталогах. –help Вывод справочной информации о команде. –version Вывод информации о версии.

Для удаления папок с файлами нам нужно использовать параметр «-r». Введите «rm -r» и укажите название папки, которую нужно удалить. Например, если у нас есть каталог folder1 с какими-то файлами, то мы можем ее удалить, введя команду «rm -r folder1»

Читайте также:  Ivms 4200 linux debian

Если необходимо, чтобы удаление папок сопровождалось запросом, то вместе с параметром «-r» можно использовать параметр «-i». В этом случае каждая операция, которую будет выполнять команда, будет требовать разрешения пользователя. При этом команда для удаления папки folder1 будет выглядеть как «rm -ri folder1».

Обратите внимание, во всех примерах предполагается, что удаляемый объект находится в текущей папке. Но, при необходимости вы можете удалять каталоги используя полный путь.

Например, вы можете указать «rm -rv /home/aleks/folder1» для того, чтобы удалить папку folder1 с выводом подробной информации.

Как удалить все файлы в папке Linux

В некоторых случаях может возникнуть необходимость удалить все файлы в папке при этом не удаляя саму папку. Для решения такой задачи можно использовать вот такую команду «rm -rf /path/to/directory/*». Данная команда удалит все файлы и папки (рекурсивно удалит все содержимое) по указанному пути.

Если же нужно удалить все файлы в папке, но оставить вложенные папки, то это можно сделать командой «rm -f /path/to/directory/*».

Альтернативный вариант — это удаление самой папки со всем содержимым (включая скрытые файлы и каталоги) и повторное ее создание.

Для этого подойдет команда «rm -rf foldername && mkdir foldername».

Удаление всей директории со всеми вложенными файлами и директориями командой rm

В повседневной работе гораздо чаще приходится удалять не пустые директории, и тут на на помощь приходит команда rm. К примеру, удалить все содержимое директории letters можно командой (Осторожно! удаление без подтверждения):

  • -r – указывает что нужно производить удаление рекурсивно, т.е. пройтись по всему списку файлов и папок и попытаться удалить каждую из них.
  • -f — удаление без запроса его подтверждения.

Дополнительная информация о командах rmdir и rm

Чтобы получить дополнительную информацию по этим командам, Вы всегда можно воспользоваться следующей стандартной командой-справочником-подсказкой-документацией:

Почему существует две различные команды для одной операции?

Казалось бы, а зачем создавать отдельную команду для удаления только пустых директорий, если можно воспользоваться rm? Но, вдумавшись, понимаешь, что это была просто великолепная идея! Почему? Да потому что невозможно запомнить какие и где файлы хранятся, и когда нужно удалить директорию с каким-нибудь глупым или подозрительным названием (явно созданную по ошибке) можно воспользоваться безопасной командой rmdir, которая выдаст ошибку если в этой директории есть какие-то файлы. Очень удобно! Это защищает от случайного удаления.

  • https://andreyex.ru/operacionnaya-sistema-linux/kak-udalyat-fajly-i-katalogi-s-pomoshhyu-komandnoj-stroki-linux/
  • https://losst.ru/kak-udalit-katalog-linux
  • https://comp-security.net/%D0%BA%D0%B0%D0%BA-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D0%BF%D0%BA%D1%83-%D0%B2-linux-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB/
  • http://ITandLife.ru/os/linux/kak-udalyat-direktorii-v-linux/

Источник

How to delete a non-empty directory in Terminal?

I’m unable to remove a directory like «New Folder» using all the above detailed commands. It’s double worded. But I want to remove that directory. Any suggestions will be welcomed. T.Divakara, Bengaluru, India

Its the blank space in the file name, try using ‘quotes’ > rmdir ‘New Folder’ < then the folder disapers, or use escape characters for non-vissible characters.

Читайте также:  Amdgpu install arch linux

4 Answers 4

Use the below command :

It deletes all files and folders contained in the lampp directory.

In case user doesn’t have the permission to delete the folder:

Add sudo at the beginning of the command :

Otherwise, without sudo you will be returned permission denied. And it’s a good practice to try not to use -f while deleting a directory:

Note: this is assuming you are already on the same level of the folder you want to delete in terminal, if not:

sudo rm -r /path/to/folderName 

FYI: you can use letters -f , -r , -v :

  • -f = to ignore non-existent files, never prompt
  • -r = to remove directories and their contents recursively
  • -v = to explain what is being done

In my humble opinion, it’s a good practice never to add the «f» on first attempt. Its purpose is to ignore certain warning prompts that may be important, especially if you’ve accidentally done it on/from the wrong directory. In my opinion it’s good to try without the «f» first, then only if you are encountering a lot of warning prompts and you’re sure it’s OK to ignore them all, Ctrl+C out of it and repeat the command with the «f».

@thomasrutter . Agree. A file «xxx» owner: root and group: root can BE deleted with the -f switch; and without sudo. This is the message without -f: «rm: remove write-protected regular file ‘/home/william/.cache/netbeans/v08.01/tmp/xxx’? _». _Tread gently.

However, you need to be careful with a recursive command like this, as it’s easy to accidentally delete a lot more than you intended.

It is a good idea to always double-check which directory you’re in, and whether you typed the command correctly, before pressing Enter.

Safer version

Adding -i makes it a little safer, because it will prompt you on every deletion. However, if you are deleting many files this is not going to be very practical. Still, you can try this first.

Many people suggest using -f (combining it into -Rf or -rf ), claiming that it gets rid of annoying prompts. However, in normal cases you don’t need it, and using it suppresses some problems that you probably do want to know about. When you use it, you won’t be warned if your arguments supply a non-existing directory or file(s): rm will just silently fail to delete anything. As a general rule, try first without the -f : if there are problems with your arguments, then you’ll notice. If you start getting too many prompts about files without write access, then you can try it with -f . Alternatively, run the command from a user (or the superuser using sudo) that has full permissions to the files and directories you’re deleting to prevent these prompts in the first place.

Источник

Оцените статью
Adblock
detector