- Как удалить каталог в Linux
- Подготовка
- Удаление каталогов с помощью rmdir
- Удаление каталогов с помощью rm
- Удаление каталогов с помощью find
- Удаление всех пустых каталогов
- / bin / rm: слишком длинный список аргументов
- Выводы
- Как удалить каталог в Linux
- How to Remove (Delete) Directory in Linux
- В этой статье мы расскажем , как удалить каталоги в Linux , используя mdir, rm и find команду.
- Прежде чем вы начнете
- Удаление каталогов с rmdir
- Удаление каталогов с rm
- Удаление каталогов с find
- Удаление всех пустых каталогов
- / bin / rm: список аргументов слишком длинный
- Вывод
- Delete / Remove a Directory Linux Command
- Commands to remove a directory in Linux
- rmdir command syntax to delete directory in Linux
- Delete directory Linux Command
- How to see a diagnostic message for every directory processed
- Removing directories with rmdir and wildcards
- Linux remove entire directory including all files and sub-directories command
- Are you getting permission denied error message while removing directories?
- Use find command to delete unwanted directories
- How to find and remove all empty directories
- Conclusion
Как удалить каталог в Linux
Есть несколько различных способов удаления каталогов в системах Linux. Если вы используете файловый менеджер рабочего стола, такой как Gnome’s Files или KDE’s Dolphin, вы можете удалять файлы и каталоги с помощью графического пользовательского интерфейса менеджера. Но если вы работаете на автономном сервере или хотите удалить сразу несколько каталогов, лучшим вариантом является удаление каталогов (папок) из командной строки.
В этой статье мы объясним, как удалять каталоги в Linux с помощью команд rmdir , rm и find .
Подготовка
При удалении каталога с помощью файлового менеджера рабочего стола каталог фактически перемещается в корзину и может быть легко восстановлен.
Будьте особенно осторожны при удалении файлов или каталогов из командной строки, поскольку после удаления каталога с помощью команд, описанных в этой статье, его невозможно полностью восстановить.
В большинстве файловых систем Linux для удаления каталога требуется разрешение на запись в каталог и его содержимое. В противном случае вы получите ошибку «Операция запрещена».
Имена каталогов с пробелами должны быть экранированы обратной косой чертой ( / ).
Удаление каталогов с помощью rmdir
rmdir — это утилита командной строки для удаления пустых каталогов. Это полезно, когда вы хотите удалить каталог только в том случае, если он пуст, без необходимости проверять, пуст каталог или нет.
Чтобы удалить каталог с помощью rmdir , введите команду, а затем имя каталога, который вы хотите удалить. Например, чтобы удалить каталог с именем dir1 , введите:
Если каталог не пустой, вы получите следующую ошибку:
В этом случае вам нужно будет использовать команду rm или вручную удалить содержимое каталога, прежде чем вы сможете его удалить.
Удаление каталогов с помощью rm
rm — это утилита командной строки для удаления файлов и каталогов. В отличие от rmdir команда rm может удалять как пустые, так и непустые каталоги.
По умолчанию при использовании без каких-либо параметров rm не удаляет каталоги. Чтобы удалить пустой каталог, используйте параметр -d ( —dir ), а для удаления непустого каталога и всего его содержимого используйте параметр -r ( —recursive или -R ).
Например, чтобы удалить каталог с именем dir1 вместе со всем его содержимым, введите:
Если каталог или файл в каталоге защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить каталог без запроса, используйте параметр -f :
Чтобы удалить сразу несколько каталогов, вызовите команду rm , после которой укажите имена каталогов, разделенные пробелом. Приведенная ниже команда удалит все перечисленные каталоги и их содержимое:
Параметр -i указывает rm запрашивать подтверждение удаления каждого подкаталога и файла. Если в каталоге много файлов, это может немного раздражать, поэтому вы можете рассмотреть возможность использования опции -I которая предложит вам только один раз, прежде чем продолжить удаление.
Чтобы удалить каталог, введите y и нажмите Enter .
Вы также можете использовать обычные расширения для сопоставления и удаления нескольких каталогов. Например, чтобы удалить все каталоги первого уровня в текущем каталоге, который заканчивается на _bak , вы должны использовать следующую команду:
Использование регулярных расширений при удалении каталогов может быть рискованным. Рекомендуется сначала перечислить каталоги с помощью команды ls чтобы вы могли видеть, какие каталоги будут удалены, прежде чем запускать команду rm .
Удаление каталогов с помощью find
find — это утилита командной строки, которая позволяет вам искать файлы и каталоги на основе заданного выражения и выполнять действие с каждым совпадающим файлом или каталогом.
Наиболее распространенный сценарий — использовать команду find для удаления каталогов на основе шаблона. Например, чтобы удалить все каталоги, которые заканчиваются на _cache в текущем рабочем каталоге, вы должны запустить:
Давайте проанализируем команду выше:
- /dir — рекурсивный поиск в текущем рабочем каталоге ( . ).
- -type d — ограничивает поиск каталогами.
- -name ‘*_cache’ — искать только каталоги, заканчивающиеся на _cache
- -exec — выполняет внешнюю команду с необязательными аргументами, в данном случае это rm -r .
- <> + — добавляет найденные файлы в конец команды rm .
Удаление всех пустых каталогов
Чтобы удалить все пустые каталоги в дереве каталогов, выполните:
Вот объяснение используемых опций:
- /dir — рекурсивный поиск в каталоге /dir .
- -type d — ограничивает поиск каталогами.
- -empty — ограничивает поиск только пустыми каталогами.
- -delete — удаляет все найденные пустые каталоги в поддереве. -delete может удалять только пустые каталоги.
Используйте параметр -delete с особой осторожностью. Командная строка поиска оценивается как выражение, и если вы сначала добавите параметр -delete , команда удалит все, что находится ниже указанных вами начальных точек.
Всегда сначала проверяйте команду без опции -delete и используйте -delete в качестве последней опции.
/ bin / rm: слишком длинный список аргументов
Это сообщение об ошибке появляется, когда вы используете команду rm для удаления каталога, содержащего огромное количество файлов. Это происходит из-за того, что количество файлов превышает системное ограничение на размер аргумента командной строки.
Есть несколько разных решений этой проблемы. Например, вы можете cd в каталог и вручную или с помощью цикла для удаления Подкаталогов один за другим.
Самое простое решение — сначала удалить все файлы в каталоге с помощью команды find а затем удалить каталог:
Выводы
С помощью rm и find вы можете быстро и эффективно удалять каталоги по различным критериям.
Удаление каталогов — простой и легкий процесс, но вы должны быть осторожны, чтобы не удалить важные данные.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Как удалить каталог в Linux
How to Remove (Delete) Directory in Linux
В этой статье мы расскажем , как удалить каталоги в Linux , используя mdir, rm и find команду.
Существует несколько различных способов удаления каталогов в системах Linux. Если вы используете файловый менеджер Desktop, такой как «Файлы Gnome» или «Dolphin» в KDE, вы можете удалять файлы и каталоги с помощью графического пользовательского интерфейса менеджера. Но если вы работаете на автономном сервере или хотите удалить несколько каталогов одновременно, лучшим вариантом будет удаление каталогов (папок) из командной строки.
Прежде чем вы начнете
При удалении каталога с помощью файлового менеджера на рабочем столе этот каталог фактически перемещается в корзину и может быть легко восстановлен.
Будьте особенно осторожны при удалении файлов или каталогов из командной строки, поскольку после удаления каталога с помощью команд, описанных в этой статье, его невозможно полностью восстановить.
В большинстве файловых систем Linux удаление каталога требует разрешения на запись в каталог и его содержимое. В противном случае вы получите ошибку «Операция не разрешена».
Имена каталогов с пробелом в них должны быть экранированы обратной косой чертой ( / ).
Удаление каталогов с rmdir
Чтобы удалить каталог с помощью rmdir , введите команду, а затем имя каталога, который вы хотите удалить. Например, чтобы удалить каталог с именем dir1 , введите:
Если каталог не пустой, вы получите следующую ошибку:
В этом случае вам нужно будет использовать rm команду или вручную удалить содержимое каталога, прежде чем вы сможете удалить его.
Удаление каталогов с rm
rm утилита командной строки для удаления файлов и каталогов В отличие rmdir от rm команды можно удалять как пустые, так и непустые каталоги.
По умолчанию при использовании без какой-либо опции rm не удаляются каталоги. Чтобы удалить пустой каталог, используйте опцию -d ( —dir ) и удалите непустой каталог, а все его содержимое используйте опцию -r ( —recursive или -R ).
Например, чтобы удалить каталог dir1 со всем его содержимым, вы должны набрать:
Если каталог или файл в каталоге защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить каталог без запроса, используйте -f параметр:
Чтобы удалить несколько каталогов одновременно, вызовите rm команду, а затем имена каталогов, разделенные пробелом. Команда ниже удалит все перечисленные каталоги и их содержимое:
-i Параметр указывает rm на запрос на подтверждение удаления каждого подкаталога и файла. Если каталог содержит много файлов, это может немного раздражать, поэтому вы можете рассмотреть возможность использования -I опции, которая предложит вам только один раз, прежде чем продолжить удаление.
Вы также можете использовать обычные расширения для сопоставления и удаления нескольких каталогов. Например, чтобы удалить все каталоги первого уровня в текущем каталоге, который заканчивается на _bak , вы должны использовать следующую команду:
Использование регулярных расширений при удалении каталогов может быть рискованным. Рекомендуется сначала перечислить каталоги с помощью ls команды, чтобы вы могли видеть, какие каталоги будут удалены перед выполнением rm команды.
Удаление каталогов с find
find утилита командной строки, которая позволяет вам искать файлы и каталоги на основе заданного выражения и выполнять действия с каждым соответствующим файлом или каталогом.
Наиболее распространенный сценарий — использовать find команду для удаления каталогов на основе шаблона. Например, чтобы удалить все каталоги, которые заканчиваются _cache в текущем рабочем каталоге, вы должны выполнить:
Давайте проанализируем команду выше:
- /dir — рекурсивный поиск в текущем рабочем каталоге ( . ).
- -type d — ограничивает поиск по каталогам.
- -name ‘*_cache’ — искать только каталоги, которые заканчиваются _cache
- -exec — выполняет внешнюю команду с необязательными аргументами, в данном случае, то есть rm -r .
- <> + — добавляет найденные файлы в конец rm команды.
Удаление всех пустых каталогов
Чтобы удалить все пустые каталоги в дереве каталогов, вы должны выполнить:
Вот объяснение используемых опций:
- /dir — рекурсивный поиск по /dir каталогу.
- -type d — ограничивает поиск по каталогам.
- -empty — ограничивает поиск только пустыми каталогами.
- -delete — удаляет все найденные пустые каталоги в поддереве. -delete можно удалить только пустые каталоги.
Используйте -delete опцию с особой осторожностью. Командная строка find оценивается как выражение, и если вы -delete сначала добавите параметр, команда удалит все, что находится ниже указанных вами начальных точек.
Всегда проверяйте команду сначала без -delete опции и используйте -delete в качестве последней опции.
/ bin / rm: список аргументов слишком длинный
Это сообщение об ошибке появляется при использовании rm команды для удаления каталога, содержащего огромное количество файлов. Это происходит потому, что количество файлов превышает системное ограничение на размер аргумента командной строки.
Есть несколько разных решений этой проблемы. Например, вы можете cd в каталог и вручную или с помощью цикла удалить подкаталоги один за другим.
Самое простое решение — сначала удалить все файлы в каталоге с помощью find команды, а затем удалить каталог:
Вывод
С помощью rm и find вы можете удалять каталоги на основе различных критериев быстро и эффективно.
Удаление каталогов — это простой и легкий процесс, но вы должны быть осторожны, чтобы не удалить важные данные.
Источник
Delete / Remove a Directory Linux Command
Commands to remove a directory in Linux
There are two command to delete a folder in Linux:
- rmdir command – Deletes the specified empty directories and folders in Linux.
- rm command – Delete the file including sub-directories. You can delete non-empty directories with rm command in Linux.
Let us see some examples and usage in details delete the directories.
rmdir command syntax to delete directory in Linux
The rmdir command remove the DIRECTORY(ies), if they are empty. The syntax is:
rmdir directory-name
rmdir [option] directory-name
Open the terminal application and run command to delete given directory. For example, delete a folder named dir1:
rmdir dir1
Delete directory Linux Command
Open a command line terminal (select Applications > Accessories > Terminal), and then type the following command to remove a directory called /tmp/docs:
rmdir /tmp/docs
If a directory is not empty you will get an error message that read as follows:
rmdir letters
Sample outputs:
You can cd to the directory to find out and list all files:
$ cd letters
$ ls
Delete those files or directories. In this next example, remove data, foo and bar if bar were empty, foo only contained bar and data only contained foo directories:
cd /home/nixcraft
rmdir -p data/foo/bar
Where,
- -p : Each directory argument is treated as a pathname of which all components will be removed, if they are empty, starting with the last most component.
How to see a diagnostic message for every directory processed
Pass the -v option to the rmdir command:
$ rmdir -v dir1
Sample outputs:
Removing directories with rmdir and wildcards
We can use wildcards such as ‘*’ and ‘?’ to match and delete multiple directories. For example:
$ ls -l dir*
We have three dirs named dir1, dir2, and dir3. To delete all directories starting with ‘dir’ in the current, you would use the following command:
rmdir -v dir*
Linux remove entire directory including all files and sub-directories command
To remove all directories and subdirectories use the rm command. For example, remove *.doc files and all sub-directories and files inside letters directory, type the following command:
Warning : All files including subdirectories will be deleted permanently when executed the following commands.
$ rm -rf letters/
Sample session:
Where,
- -r : Attempt to remove the file hierarchy rooted in each file argument i.e. recursively remove subdirectories and files from the specified directory.
- -f : Attempt to remove the files without prompting for confirmation, regardless of the file’s permissions
Are you getting permission denied error message while removing directories?
Only owners can delete their directories. However, a sysadmin can delete any directories created by anyone on the system. The syntax is:
sudo rmdir /path/to/dir/
sudo rm -rf dir2
When prompted, you need to provide root user or sudo user password.
Use find command to delete unwanted directories
Say you want to find out all directories named ‘session’ and delete them in the current directory, run:
find . -type d -iname ‘session’ -delete
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
How to find and remove all empty directories
Run:
find . -type d -iname ‘session’ -empty -delete
Where,
- -type d : Only search for directories and ignore all other files.
- -iname ‘session’ : Search directory named ‘session’. You can use wildcards here too. For example, -iname ‘dir*’ .
- -empty : Only match empty directories
- -delete : Deletes all found empty directories only
To delete all ‘.DS_store’ directories stored in /var/www/html, run:
sudo find /var/www/html/ -type d -name .DS_Store -exec rm <> \;
OR
sudo find /var/www/html/ -type d -name .DS_Store -exec rm <> +
The -exec option to the find command run an external command named rm to delete all files. The “ rm <> +/ ” is a better option as it uses one rm command to delete all .DS_Store directories.
Conclusion
This page showed how to delete a directory when it is empty. Further, it showed, how to remove folders using the rm and rmdir commands. See rm help page page for more info:
- For more information read man pages: rm(1)
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Источник