Как удалять файлы и каталоги с помощью командной строки Linux. Команда RMDIR (RD) – удалить каталог файловой системы Windows rm -d путь-к-директории

  • 25.01.2022

Командная строка – мощный инструмент для автоматизации и упрощения многих задач, которые возникают при администрировании компьютера с операционной системой Windows. В этой статье мы рассмотрим команды DEL, ERASE, RD и RMDIR. С их помощью вы сможете удалять файлы и папки прямо из командной строки.

Если вам нужно удалить файл через , то для этого нужно использовать команду DEL или ERASE . Эти команды являются синонимами и работают одинаково. Вы можете получить подробную информацию об этих командах, если введете их в командную строку с параметром «/? ». Например, вы можете ввести «del /? » и в консоль выведется вся основная информация о команде del .

Команда DEL (или ERASE ) предназначена для удаления одного или нескольких файлов и может принимать следующие параметры:

  • /P – удаление с запросом подтверждения для каждого файла;
  • /F – удаление файлов с атрибутом «только для чтения»;
  • /S – удаление указанного файла из всех вложенных папок;
  • /Q – удаление без запроса на подтверждение;
  • /A – удаление файлов согласно их атрибутам;

    • S — Системные;
    • H — Скрытые;
    • R – Только для чтения;
    • A — Для архивирования
    • Также перед атрибутами можно использовать знак минус «-», который имеет значение «НЕ». Например, «-S» означает не системный файл.

Обычно, для того чтобы воспользоваться командной DEL нужно сначала перейти в папку, в которой находится файл для удаления, и после этого выполнить команду. Для того чтобы сменить диск нужно просто ввести букву диска и двоеточие. А для перемещения по папкам нужно использовать команду «CD ».

После того как вы попали в нужную папку можно приступать к удалению файлов. Для этого просто введите команду DEL и название файла.

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

Если есть необходимость выполнить запрос на подтверждение удаления каждого их файлов, то к команде DEL нужно добавить параметр «/p ». В этом случае в командной строке будет появляться запрос на удаление файла и пользователю нужно будет ввести букву «Y» для подтверждения.

Нужно отметить, что при использовании параметра «/a», отвечающие за атрибуты буквы нужно вводить через двоеточие. Например, для того чтобы удалить все файлы с атрибутом «только для чтения» и с расширением «txt» нужно ввести команду «del /F /A:R *.txt ».

Аналогичным образом к команде DEL можно добавлять и другие параметры. Комбинируя их вы сможете создавать очень мощные команды для удаления файлов через командную строку Windows. Ниже мы приводим еще несколько примеров:

  • del D:\ — уничтожение всех файлов в корне диска D;
  • del D:\*.txt – уничтожение всех файлов с расширением txt в корне диска D;
  • del D:\doc – уничтожение всех файлов в папке d:\doc (документы с атрибутами будут пропущены);
  • del /A:r d:\doc\*.txt – уничтожение всех файлов с атрибутом «только для чтения» и расширением «txt» в папке d:\doc;

Удаление папок через командную строку

Если вам нужно удалить папку через командную строку Windows, то указанные выше команды вам не помогут. Для удаления папок существует отдельная команда RD или RMDIR (сокращение от английского Remove Directory).

Команды RD и RMDIR являются синонимами и предназначены для удаления папок. Они могу принимать следующие параметры:

  • /S — удаление всего дерева каталогов, при использовании данного параметра будет удалена не только сама папка, но и все ее содержимое;
  • /Q – удаление дерева папок без запроса на подтверждение;

Например, для того чтобы удалить папку достаточно ввести команду RD и название папки.

Если папка содержит вложенные папки или файлы, то при ее удалении будет выведена ошибка».

Для решения этой проблемы к команде RD нужно добавить параметр «/s ». В этом случае удаление проходит без проблем, но появляется запрос на подтверждение удаления.

Для того чтобы удаление дерева папок прошло без появления запроса на подтверждение к команде нужно добавить параметр «/q ». В этом случае папка удаляется без лишних вопросов.

Также команда RD может принимать сразу несколько папок, для этого их нужно просто разделить пробелом. Например, если выполнить «rd 111 222 », то за один раз можно удалить папки с названиями «111 » и «222 ».

Если же вам нужно удалить через командную строку папку, которая сама содержит пробел, то в этом случае ее название нужно взять в двойные кавычки.

Комбинируя команды DEL и RD , можно создавать мощные скрипты для очистки и удаления папок в операционной системе Windows.

Как удалить файл или папку из терминала?

Чтобы удалить файл или папку (а здесь корректно говорить не о папках, а о директориях) из терминала Линукс используются команды rm и rmdir , по аналогии с командами del и deltree в консоли cmd Windows. Команды просты и опциями небогаты. Это не тот вариант, к которому будет прибегать заурядный пользователь во время работы в полноценно работоспособной системе. Однако для тех, кто запускает cron-задачи при помощи скрипта или при работе из ремонтного терминала с вылетевшим GUI, команды могут пригодится.

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

Как удалить файл и папку из терминала: команда rm

Простейшая команда на удаление выглядит как

rm путь-к-файлу/файл.расширение

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

Rm файл1.txt файл2.txt файл3.txt

При удалении файлов скопом также успешно используются и групповые символы. Как всегда в таких случаях, можно применять * и ? . “Звёздочкой” вы обозначаете множество символов, ? – одиночные. Например, для удаления ряда фотографий из выбранной папки можно использовать:

Rm *.jpeg

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

Rm *.????

Если файл, предполагаемый к удалению защищён ограничительными атрибутами (типа “только для чтения”), терминал затребует подтверждение. В случае, когда вам захочется всё-таки контролировать процесс удаления файла, дополните команду флагом -i . Теперь для удаление каждого из файлов нужно будет подтверждать действие:

Соглашаться придётся на английском:

Но. В противовес флагу -i есть флаг -f . Он в команде rm удалить любые файлы, даже если те защищены создателем или системой:

Rm -f Файл.txt

Как удалить папку из терминала с помощью rm?

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

rm -d путь-к-директории

Если в директории что-то есть, меняем флаг на -r :

rm -r путь-к-директории

Защищённую папку удаляем на знакомый уже манер:

rm -rf папка

Команда сколь проста, столь же и опасна. Нерадивое её использование может привести к случайному затиранию жизненно важных директорий Кали. Потому для получения представления о составе директории прямо из терминала можно предварительно запастись скриптом древовидного отображения содержимого папок и директорий Линукс. Установим…

Apt-get install tree

и посмотрим:

Как удалить папку из терминала с помощью rmdir?

Почти тоже самое, что и предыдущий вариант с одним, но серьёзным отличием

rmdir = rm -d

Да. Командой rmdir можно удалять только пустые директории. Также единично или массово, также указывая полный путь:

Rmdir папка1 папка2

Если папка не пуста, rmdir выдаст ошибку:

Это, впрочем, не всегда удобно, если папки удаляются скопом. Вы в этом случае можете добавить флаг

Ignore-fail-on-non-empty

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

Rmdir --ignore-fail-on-non-empty папка1 папка2

Однако, если родительская директория содержит пустые папки, и она вам также не нужна, вы можете удалить и дочерние и родительскую одной командой, добавив флаг -p :

rmdir -p директория/папка

Трюк сработает потому, что rmdir начинает работать с целевой папкой, поднимаясь “по команде” наверх по иерархическому древу, удаляя одну папку за другой.

Доброго времени суток, дорогие читатели. Сегодня хотелось бы поговорить на тему удаления директории в PHP. Казалось бы, что операция не является сложной, однако некоторые нюансы имеют место быть. Давайте рассмотрим способы, как можно это сделать.

В PHP для этого предусмотрена функция rmdir() . В качестве аргумента она принимает путь до директории, которую Вы хотите удалить. Однако, директория должна быть пустая - это главное условие (если не считать того, что у пользователя, от которого работает веб-сервер, должны быть права на запись для директории). Если в директории будут размещены файлы, то мы получим ошибку при вызове функции. Соответственно, приходим к выводу, что директорию перед использованием функции rmdir() необходимо предварительно очистить.

В сети советуют написать функцию, которой в качестве аргумента будет передаваться путь к директории, которую нам необходимо удалить. В теле функции необходимо организовать листинг содержимого директории, в рамках которого осуществляется проверка - является ли файл директорией. Если файл является директорией, то по данному условию функция вызывает себя. Это необходимо для зачистки вложенных директорий, и это будет работать на всех уровнях вложенности. В ином случае, для файла применяется функция unlink() - она предназначена для удаления файла. За рамками данной проверки на последнем шаге мы удаляем директорию.

Пример реализации:

Function recursiveRemoveDir($dir) { $includes = glob($dir."/*"); foreach ($includes as $include) { if(is_dir($include)) { recursiveRemoveDir($include); } else { unlink($include); } } rmdir($dir); } //Удалим из текущей директории директорию tmp recursiveRemoveDir("tmp");
Какие проблемы у данного кода?

В простых случаях директория со всеми вложениями удалится. Но предположим, что в нашей директории присутствует скрытый файл, который начинается с точки, например, .htaccess . Функция glob() представляет из себя glob-подстановку UNIX, в которой по умолчанию не участвуют скрытые файлы (DOTFILES). Например, если мы зайдем в nix-терминал и будем использовать bash, то мы столкнемся с той же проблемой (речь именно о скрытых файлах в рамках glob). Для решения вопроса в bash существует команда shopt -s dotglob - она разрешает glob-подстановку скрытых файлов. В PHP же это можно решить добавлением дополнительно параметра GLOB_BRACE для glob() и расширением паттерна из первого параметра функции.

$includes = glob("tmp/{,.}*", GLOB_BRACE);
И тут так же есть проблема - мы столкнемся с бесконечным циклом, так как в массив войдут значения. и.. - что является на системном уровне текущей и родительской директорией. Придем мы к бесконечному циклу (а не к удалению всех родительских директорий), потому что. в рамках сортировки по умолчанию в сформированном массиве будет первее.. - то есть каждый раз мы будет обращаться к одной и той же директории. Для решения проблемы сформируем массив из данных системных директорий и в цикле удалим их индексы из основного массива. Также существует проблема символьных ссылок. Допустим, что в удаляемой директории размещена ссылка на другую директорию, в удалении содержимого которой мы абсолютно не заинтересованы. Для решения проблемы, перед созданием рекурсии, необходимо организовать проверку на то, что сущность не является ссылкой.

В итоге, функция обретает следующий вид:

Function recursiveRemoveDir($dir) { $includes = glob($dir."/{,.}*", GLOB_BRACE); $systemDots = preg_grep("/\.+$/", $includes); foreach ($systemDots as $index => $dot) { unset($includes[$index]); } foreach ($includes as $include) { if(is_dir($include) && !is_link($include)) { recursiveRemoveDir($include); } else { unlink($include); } } rmdir($dir); } //Удалим из текущей директории директорию tmp recursiveRemoveDir("tmp");
Код рабочий, но на самом деле можно было сделать и проще. В PHP существует класс FilesystemIterator, который уже по умолчанию имеет необходимые нам настройки. В конструктор передается путь до директории, листинг которой нам нужен. Нам достаточно просто создать объект.

Function recursiveRemoveDir($dir) { $includes = new FilesystemIterator($dir); foreach ($includes as $include) { if(is_dir($include) && !is_link($include)) { recursiveRemoveDir($include); } else { unlink($include); } } rmdir($dir); } //Удалим из текущей директории директорию tmp recursiveRemoveDir("tmp");
В заключение хотелось бы отметить еще один быстрый способ. Корректность его использования весьма сомнительна - отправить команду на выполнение в SHELL.

System("rm -rf tmp");
Обращаю внимание на высокий расход памяти и на то, что зачастую администраторы запрещают использовать на сервере такого рода функции в целях безопасности.

Теги: php, rmdir, glob, рекурсия

Бесплатное распространение, скорость работы и иммунитет к вирусам являются причиной перехода на операционные системы, работающие на ядре Linux. Первый вопрос, с которым сталкивается человек – работа с директивами. О том, как создать и удалить папку в Linux пойдет речь далее.

Как создать директорию в Linux

Решается вопрос двумя способами:

Оба метода имеют индивидуальный подход. Для тех, кто привык большинство операций выполнять мышкой, удобным будет первый метод, если же в работе преобладает использование клавиатуры – второй. Более того, создание каталога в Linux через терминал имеет дополнительные функции, о которых рассказано ниже.

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

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

Чтобы создать каталог в Ubuntu, используют команду mkdir (от англ. – make directory). При этом нужно обладать правами на запись данных в родительском каталоге. Задание команды предполагает написание имени самой программы и перечисление следом за ней операндов (названий директорий). При необходимости указывают дополнительные опции:

  • - m – задает права доступа к папке;
  • -p – создает дерево папок.

Шаблон полной записи выглядит следующим образом:

mkdir-p-m права имя_папки1 имя_папки2 имя_папки3

Чтобы создать папку в операционной системе Debian, применяют тот же принцип, так как она основана на ядре Linux.

Как создать папку в Линукс через файловый менеджер

Такой способ выглядит более эстетично, так как не предполагает написание команд. Работа основывается на привычном визуальном отображении операций на экране, управление которыми происходит мышью. Все действия выполняются во встроенном файловом менеджере Nautilus.

Запускается программа путем клика по ее ярлыку на панели инструментов, а также используя меню Dash. Следующим шагом осуществляется переход к директории, в которой планируется создать дочернюю папку. Клик на пустом пространстве менеджера правой кнопкой мыши вызовет контекстное меню, где находится нужный пункт – «Создать папку». Остается задать имя новому каталогу. В отличие от Windows, Linux позволяет использовать все символы раскладки клавиатуры при выборе имени, за исключением дробной черты (слэша). Для сохранения результата необходимо кликнуть на свободном пространстве утилиты.

Права на папку Ubuntu

После создания каталога в Linux для нее задают права доступа по умолчанию, разрешающие выполнять с ней различные операции.

Средства Linux позволяют наложить ограничения на пользование папкой. Для просмотра установленных разрешений применяют команду ls-lt . Результатом ее выполнения является подобная запись:

Здесь d инициализирует namedir как директорию, а каждый последующий символ подразумевает соответствующее действие:

  • r – чтение;
  • w – запись в папку;
  • x – выполнение.

Запись можно разделить на три части. Первые 3 символа устанавливают разрешения для создателя директории, следующие – задают групповые права для файла, указанного в имени группы. Последний набор символов – разрешения для всех остальных пользователей. По приведенному выше примеру ясно, что владелец может выполнять с папкой любые действия, в то время как для групп и посторонних закрыта возможность записи.

Для редактирования разрешений доступа к папке или файлу используют команду chmod . Она оперирует тремя цифровыми значениями:

  • 4 – открывает доступ к чтению;
  • 2 – позволяет осуществлять запись;
  • 1 – разрешает выполнение.

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

Изменение управляющей папкой группы реализуется командой chgrp . Сначала следующим образом создается учетная запись группы:

Теперь можно передать группе управление папкой:

chgrp accgroup namedir

Как сделать файлы общедоступными Linux Ubuntu

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

Необходимо кликнуть правой кнопкой мыши по ярлыку каталога и затем выбрать пункт «Общедоступная папка локальной сети». Если его нет – отсутствует дополнение Nautilus Share, которое легко находится в Ubuntu Software Center. После установки менеджер нужно перезапустить.

Если нужно организовать доступ по имени пользователя и паролю, устанавливается расширение System Config Samba. Через настройки оно позволяет добавить или удалить пользователя, для которого открывается директория.

Подробные инструкции по настройке Samba описаны в видео:

Как удалить папку в Linux

Ubuntu предоставляет возможность удалить каталог с помощью команды rmdir . Для этого записывается ее имя, и перечисляются каталоги (при условии нахождения в нужной директории):

rmdir namedir1 namedir2

Важно! Если у пользователя открыт другой каталог, стоит указать полный путь во избежание исчезновения нужных файлов:

rmdir home/dir1/namedir1

Чтобы удалить папку с файлами в Ubuntu, необходимо воспользоваться командой rm-rf :

Для удаления нескольких директорий с помощью rmdir их все нужно перечислить.

Заключение

Создать и удалить папку в Linux можно несколькими способами, каждый из которых обладает своими преимуществами. На выбор предоставляются файловый менеджер Nautilus и терминал. Если первый более привычен и удобен визуально, то второй ускоряет процесс и предоставляет большее количество возможностей.