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

Удаление Папки и Файлов в Linux

Работать с командной строкой должен уметь каждый будущий системный администратор и опытный пользователь Linux. Сегодня мы рассмотрим ещё одну базовую функцию — удаление папки и файлов в Linux с помощью командной строки.

Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.

Команда rmdir

Команда, используемая, чтобы удалить пустую папку в Linux через командную строку — это rmdir.

Основной синтаксис этой команды довольно простой. Вот пример:

  • rmdir — это команда
  • [опция] — опциональный модификатор, который изменяет поведение команды
  • НазваниеПапки — каталог, который вы хотите удалить

Если опция не указана, rmdir просто удаляет каталог, имя которого указано в качестве места назначения. Перед использованием этой команды вам нужно будет войти на сервер VPS через SSH. Вот статья, которая поможет вам это сделать.

Удаление Папки в Linux с Помощью Команды rmdir

Перед использованием команды rmdir мы рекомендуем вам проверить список файлов в каталоге с помощью команды ls. В нашем случае у нас есть каталог с названием Dir1.

Эта команда удалит пустой каталог с именем Dir1. Довольно просто, правда?

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

После выполнения этой команды каталоги с именами Dir1, Dir2 и Dir3 будут удалены.

Допустим, у нас есть папка Dir3. Dir3 содержит подкаталоги и файлы. Теперь, если мы используем команду:

То получим ошибку:

Как вы уже могли догадаться, rmdir работает только с пустыми каталогами.

Rmdir — умная утилита, которая позволяет удалять только пустые папки. Таким образом, она защищает данные от случайной потери. Помните, что удалённые данные в любом дистрибутиве Linux практически невозможно восстановить.

Опция -p позволяет удалить папку через командную строку, а также её родительские каталоги.

Эта команда удалит Dir3 и его родительские каталоги Dir2 и Dir1.

Опция -v выводит диагностический текст для каждого обработанного каталога. Использование этой опции выведет подтверждение со списком всех каталогов, которые были удалены.

Команда rm

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

Синтаксис этой команды похож на rmdir:

Как Удалить Файл в Linux с Помощью Команды rm

Давайте используем команду rm, чтобы удалить файл с именем article.txt:

Допустим, у нас есть каталог с именем Dir1, содержащий подкаталоги и файлы, чтобы удалить его, нам понадобится модификатор -r. Команда будет выглядеть так:

Опция -r рекурсивно удаляет каталоги и их содержимое.

Ещё одна полезная опция -i. Она попросит вас подтвердить удаление каждого отдельного файла, благодаря чему вы сможете избежать любых неприятных ошибок.

Вы также можете удалить пустые каталоги, используя опцию -d. Следующая команда удалит пустую папку с именем Dir1:

Читайте также:  Kernel power критическая ошибка windows 10 как исправить

Вы можете использовать подстановочный знак (*) и обычные расширения для сопоставления нескольких файлов. Например, следующая команда удалит все файлы PDF в текущем каталоге.

Вы можете использовать вариации всех перечисленных выше команд для удаления файлов с другими расширениями, такими как .txt, .doc, .odt и другими.

Опция -f позволяет принудительно удалить всё, что находится в каталоге. Команда будет выглядеть так:

Приведённая выше команда рекурсивно и принудительно удалит всё, что находится в каталоге Dir1, не запрашивая подтверждения в терминале.

Вы также можете удалить несколько папок за раз. Следующая команда удалит три каталога Dir1, Dir2 и Dir3.

Поздравляем, вы успешно освоили основные функции команд rm и rmdir, позволяющие удалить файл или папку в Linux!

Итоги

Случайное удаление папки или даже одного файла в Linux может привести к серьёзным проблемам. Вот почему важно освоить две основные команды для удаления файлов и каталогов — rm и rmdir. В этой статье мы рассмотрели эти две команды и различные опции, которые позволяют их модифицировать.

Надеемся, что эта статья была полезной! И помните, что после удаления файла или каталога из Linux вы не сможете их восстановить, поэтому будьте предельно осторожны! Удачи.

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Источник

очистить директорию

какой командой очистить директорию, не удаляя саму директорию?

уточню- cd директория && sudo rm -rf

rm -rf /path/to/dir — удалит директорию вместе с содержимым
rm -rf /path/to/dir/* — удалит только содержимое

. без скрытых файлов и каталогов

Точно.
Тогда так:
rm -rf /path/to/dir/* ; rm -rf /path/to/dir/.[^.]*

Тогда уж можно свести все в одну команду )

Да. А еще можно так: shopt -s dotglob && rm -rf /path/to/dir/*
🙂

О, а я как лох пишу .[a-zA-Z0-9]* Меня несколько оправдывает то, что нужно мне это пару раз в год.

Это не удалит файлы с двумя точками (..file). Ну и незачем два раза вызывать: rm -rf /path/to/dir/* /path/to/dir/.[^.]* . *

find /path/to/dir/ -mindepth 1 -exec rm -rf <> \;

find /path/to/dir/ -mindepth 1 -delete
Тогда уж так.

Источник

Удалить только файлы в каталоге на linux не каталоги

какую команду delete можно запустить, чтобы удалить только файлы в данном каталоге

  • не директории
  • не подкаталогов
  • не файлы в этих поддиректориях.

некоторые файлы не имеют расширения, так rm *.* не будет работать.

в этой папке тысячи файлов.

9 ответов

можно использовать find С -type f только для файлов и -maxdepth 1 так find не будет искать файлы в подкаталогах /path/to/directory . rm -i предложит вам при каждом удалении, чтобы вы могли подтвердить или отклонить удаление. Если вы не заботитесь о подтверждении каждого удаления, измените его на rm -fv ( -f на силу удалить). The -v флаг делает это так, что с каждым удалением печатается сообщение о том, какой файл был просто удаленный.

это должно соответствовать критериям:

не директории
Не подкаталоги
Не файлы в этих подкаталогах.

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

Читайте также:  Windows virtual machine 64 bit guest

так как это высоко на Google search, самый простой ответ:

где $directoryPath-это каталог, который вы хотите очистить. Кредиты должны идти на cbm3384 (который по какой-то причине получил отрицательные голоса за этот ответ, почему?)

если вы не хотите подтверждать:

если вы не верите, попробуйте man rm или

выше создает структуру каталогов, которая имеет helloX.файл txt в каждой папке (х уровень каталогов.) rm 1/2/* удалить hello2.txt и оставляет другую структуру неповрежденной.

и rm */*/* удаляет только hello2.txt . Это единственное, что соответствует шаблону.

просто пример файла Makefile, который очищает CakePHP tmp-directory и оставляет структуру каталогов нетронутой:

минус перед rm означает «не стой над ошибками» (каталог неснятую возвращает ошибку). Если вы хотите сохранить какой-то уровень, просто удалите эту строку, например, вторая строка rm удаляет журналы.

Дайте мне знать, если у вас есть система, которая делает что-то еще (БСД?).

EDIT: я тестировал это на ubuntu 12.04, osx lion и sourceforge.net Шелл. Все ведут себя так, как описано выше.

rm не удалять каталоги по умолчанию. Итак, в вашем примере,предполагая, что вы находитесь в Родительском каталоге и все файлы, все что вам нужно это:

Источник

Как удалить все файлы из каталога?

Самое близкое, что я получил, это

но это не работает для файлов, которые не имеют расширения .

Linux не использует расширения. Создатель файла должен решить, хочет ли он, чтобы имя имело расширение. Linux смотрит на 1-й байт, чтобы выяснить, с каким файлом он имеет дело.

Чтобы удалить все в каталоге, используйте:

Вы можете использовать -r опцию, например:

rm -r /path/to/directory/*

также удалить любые подкаталоги (вместе со всем их содержимым) внутри каталога, содержимое которого вы удаляете. В противном случае будет отображена ошибка, сообщающая, что каталог не удаляется.

Чтобы удалить папку со всем ее содержимым ( включая все внутренние папки ):

Чтобы удалить все содержимое папки ( включая все внутренние папки ), но не саму папку:

если вы хотите убедиться, что скрытые файлы / каталоги также удалены.

Чтобы удалить все «файлы» из папки ( не удаляя внутренние папки ):

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

эквивалентно 2 отдельным rm -rf вызовам:

Чтобы избежать этой проблемы, вы можете использовать ‘ одинарные кавычки ‘ ( не расширяет переменные оболочки) или » двойные кавычки » ( расширяет переменные оболочки):

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

Источник

Как удалить каталог Linux

В операционной системе Linux можно выполнить большинство действий через терминал. Удаление каталога Linux — это достаточно простое действие, которое можно выполнить просто открыв файловый менеджер.

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

Читайте также:  Openjdk linux ��� ���

Как удалить каталог Linux

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

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

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

rm -Rfv моя_папка

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

rm -Rfv /var/www/public_html

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

find . -type d -name «моя_папка» -exec rm -rf <> \;

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

/ -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. Она позволяет подставить аргументы в нужное место. Например:

/ -type f -empty -print0 | xargs -0 -I <> /bin/rm «<>«

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

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

sudo apt install wipe

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

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

Выводы

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

Источник

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