Удаление Папки и Файлов в Linux: Команда rm, rmdir

Delete contents of a directory but keep the directory

The usecase here is to delete all the contents of the directory but keep the parent directory so that we do not need to create it again. rmdir /Q /S does not work here as it deletes the parent directory too. Rather the below commands should do the trick.

forfiles /P directory_path /M * /C "cmd /c if @isdir==FALSE del @file"
forfiles /P directory_path /M * /C "cmd /c if @isdir==TRUE rmdir /S /Q @file"

This works in 2 steps – the first command deletes all files, whereas the second one deletes all subdirectories.

Delete folder from cmd

Run the command rmdir on the folder.

rmdir directoryname

Example:

C:>rmdir emptydir
C:>

Deleting directory with white spaces in the name

Rmdir can delete files with whitespaces in the name, you just need to wrap up the folder name in double quotes as shown in the below example.

rmdir /Q /S "folder with spaces in the name"

Errors

To delete a directory, you should have appropriate access permissions on the directory. Otherwise rmdir throws ‘Access denied’ error.

Force delete a folder without confirmation

To  force delete directory, without being asked for confirmation, we can use /Q switch.

rmdir /Q /S nonemptydir

How to delete a non empty folder

The simple rmdir does not work for folders having some content.

C:>rmdir nonemptydir
The directory is not empty.

Use /s option to delete the folder contents along with the folder. This deletes all subfolders recursively.

C:>rmdir /S nonemptydir
nonemptydir, Are you sure (Y/N)? y 
C:>

Как удалить файл в linux с помощью команды rm

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

rm article.txt

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

rm -r Dir1

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

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

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

rm -d Dir1

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

rm *.pdf

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

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

rm -rf Dir1

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

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

rm -rf Dir1 Dir2 Dir3

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

Команда cd

Текущий каталог можно изменить с помощью команды

CD [диск:][путь]

Путь к требуемому каталогу указывается с учетом приведенных выше замечаний. Например, команда CD выполняет переход в корневой каталог текущего диска. Если запустить команду CD без параметров, то на экран будут выведены имена текущего диска и каталога.

Команда copy

Одной из наиболее часто повторяющихся задач при работе на компьютере является копирование и перемещение файлов из одного места в другое. Для копирования одного или нескольких файлов используется команда COPY.

Синтаксис этой команды:

COPY [/A|/B] источник [/A|/B]  [  источник [/A|/B] [  ...]]

  [результат [/A|/B]] [/V][/Y|/–Y]

Краткое описание параметров и ключей команды COPY приведено в таблице.

Таблица 1.1. Параметры и ключи команды COPY

Параметр

Описание

источник

Имя копируемого файла или файлов

/A

Файл является текстовым файлом ASCII, то есть конец файла обозначается символом с кодом ASCII 26 (<Ctrl> <Z>)

/B

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

результат

Каталог для размещения результата копирования и/или имя создаваемого файла

/V

Проверка правильности копирования путем сравнения файлов после копирования

/Y

Отключение режима запроса подтверждения на замену файлов

/-Y

Включение режима запроса подтверждения на замену файлов

Приведем примеры использования команды COPY.

Копирование файла abc.txt из текущего каталога в каталог D:PROGRAM под тем же именем:

   COPY abc.txt D:PROGRAM

Копирование файла abc.txt из текущего каталога в каталог D:PROGRAM под новым именем def.txt:

   COPY abc.txt D:PROGRAMdef.txt

Копирование всех файлов с расширением txt с диска A: в каталог ‘Мои документы’ на диске C:

   COPY A:*.txt "C:Мои документы"

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

   COPY A:*.*

В качестве источника или результата при копировании можно указывать имена не только файлов, но и устройств компьютера. Например, для того, чтобы распечатать файл abc.txt на принтере, можно воспользоваться командой копирования этого файла на устройство PRN: COPY abc.txt PRN

:/>  Команды cmd Windows | Блог любителя экспериментов

Другой интересный пример: создадим новый текстовый файл и запишем в него информацию, без использования текстового редактора. Для этого достаточно ввести команду COPY CON my.txt, которая будет копировать то, что вы набираете на клавиатуре, в файл my.txt (если этот файл существовал, то он перезапишется, иначе — создастся). Для завершения ввода необходимо ввести символ конца файла, то есть нажать клавиши <Ctrl> <Z>.

Команда COPY может также объединять (склеивать) нескольких файлов в один. Для этого необходимо указать единственный результирующий файл и несколько исходных. Это достигается путем использования групповых знаков (? и *) или формата файл1 файл2 файл3. Например, для объединения файлов 1.txt и 2.txt в файл 3.txt можно задать следующую команду:

   COPY 1.txt 2.txt 3.txt

Объединение всех файлов с расширением dat из текущего каталога в один файл all.dat может быть произведено так:

   COPY /B *.dat all.dat

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

Если имя целевого файла совпадает с именем одного из копируемых файлов (кроме первого), то исходное содержимое целевого файла теряется. Если имя целевого файла опущено, то в его качестве используется первый файл из списка. Например, команда COPY 1.txt 2.txt добавит к содержимому файла 1.txt содержимое файла 2.txt.

COPY /B 1.txt  ,,

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

Команда COPY имеет и свои недостатки. Например, с ее помощью нельзя копировать скрытые и системные файлы, файлы нулевой длины, файлы из подкаталогов. Кроме того, если при копировании группы файлов COPY встретит файл, который в данный момент нельзя скопировать (например, он занят другим приложением), то процесс копирования полностью прервется, и остальные файлы не будут скопированы.

Команда del

Удалить один или несколько файлов можно с помощью команды

DEL [диск:][путь]имя_файла [ключи]

Для удаления сразу нескольких файлов используются групповые знаки ? и *. Ключ /S позволяет удалить указанные файлы из всех подкаталогов, ключ /F – принудительно удалить файлы, доступные только для чтения, ключ /A[[:]атрибуты] – отбирать файлы для удаления по атрибутам (аналогично ключу /A[[:]атрибуты] в команде DIR).

Команда dir

Еще одной очень полезной командой является DIR [диск:][путь][имя_файла] [ключи], которая используется для вывода информации о содержимом дисков и каталогов. Параметр [диск:][путь] задает диск и каталог, содержимое которого нужно вывести на экран. Параметр [имя_файла] задает файл или группу файлов, которые нужно включить в список. Например, команда

DIR C:*.bat

выведет на экран все файлы с расширением bat в корневом каталоге диска C:. Если задать эту команду без параметров, то выводится метка диска и его серийный номер, имена (в коротком и длинном вариантах) файлов и подкаталогов, находящихся в текущем каталоге, а также дата и время их последней модификации.

Том в устройстве C имеет метку PHYS1_PART2
 Серийный номер тома: 366D-6107
 Содержимое папки C:aditor
.              <ПАПКА>      25.01.00  17:15 .
..             <ПАПКА>      25.01.00  17:15 ..
TEMPLT02 DAT           227  07.08.98   1:00 templt02.dat
UNINST1  000         1 093  02.03.99   8:36 UNINST1.000
HILITE   DAT         1 082  18.09.98  18:55 hilite.dat
TEMPLT01 DAT            48  07.08.98   1:00 templt01.dat
UNINST0  000        40 960  15.04.98   2:08 UNINST0.000
TTABLE   DAT           357  07.08.98   1:00 ttable.dat
ADITOR   EXE       461 312  01.12.99  23:13 aditor.exe
README   TXT         3 974  25.01.00  17:26 readme.txt
ADITOR   HLP        24 594  08.10.98  23:12 aditor.hlp
ТЕКСТО~1 TXT             0  11.03.01   9:02 Текстовый файл.txt
        11 файлов        533 647 байт
         2 папок     143 261 696 байт свободно

С помощью ключей команды DIR можно задать различные режимы расположения, фильтрации и сортировки. Например, при использовании ключа /W перечень файлов выводится в широком формате с максимально возможным числом имен файлов или каталогов на каждой строке. Например:

Том в устройстве C имеет метку PHYS1_PART2
 Серийный номер тома: 366D-6107
 Содержимое папки C:aditor
[.]                    [..]                   TEMPLT02.DAT       UNINST1.000           HILITE.DAT 
TEMPLT01.DAT       UNINST0.000           TTABLE.DAT           ADITOR.EXE           README.TXT 
ADITOR.HLP           ТЕКСТО~1.TXT
        11 файлов        533 647 байт
         2 папок     143 257 600 байт свободно

С помощью ключа /A[[:]атрибуты] можно вывести имена только тех каталогов и файлов, которые имеют заданные атрибуты (R — “Только чтение”, A — “Архивный”, S — “Системный”, H — “Скрытый”, префикс “–” имеет значение НЕ). Если ключ /A используется более чем с одним значением атрибута, будут выведены имена только тех файлов, у которых все атрибуты совпадают с заданными.

DIR C: /A:HS

а для вывода всех файлов, кроме скрытых — команду

DIR C: /A:-H

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

DIR C: /A:D

Ключ /O[[:]сортировка] задает порядок сортировки содержимого каталога при выводе его командой DIR. Если этот ключ опущен, DIR печатает имена файлов и каталогов в том порядке, в котором они содержатся в каталоге. Если ключ /O задан, а параметр сортировка не указан, то DIR выводит имена в алфавитном порядке.

В параметре сортировка можно использовать следующие значения: N — по имени (алфавитная), S — по размеру (начиная с меньших), E — по расширению (алфавитная), D — по дате (начиная с более старых), A — по дате загрузки (начиная с более старых), G — начать список с каталогов.

Ключ /S означает вывод списка файлов из заданного каталога и его подкаталогов.

:/>  Как установить шрифт в windows, фотошоп, офис, ворд

Ключ /B перечисляет только названия каталогов и имена файлов (в длинном формате) по одному на строку, включая расширение. При этом выводится только основная информация, без итоговой. Например:

templt02.dat
UNINST1.000
hilite.dat
templt01.dat
UNINST0.000
ttable.dat
aditor.exe
readme.txt
aditor.hlp
Текстовый файл.txt

Команда move

Синтаксис команды для перемещения одного или более файлов имеет вид:

MOVE [/Y|/–Y] [диск:][путь]имя_файла1[,...] результирующий_файл

Синтаксис команды для переименования папки имеет вид:

MOVE [/Y|/–Y] [диск:][путь]каталог1 каталог2

Здесь параметр результирующий_файл задает новое размещение файла и может включать имя диска, двоеточие, имя каталога, либо их сочетание. Если перемещается только один файл, допускается указать его новое имя. Это позволяет сразу переместить и переименовать файл. Например,

MOVE "C:Мои документысписок.txt" D:list.txt

Если указан ключ /-Y, то при создании каталогов и замене файлов будет выдаваться запрос на подтверждение. Ключ /Y отменяет выдачу такого запроса.

CD | COPY | XCOPY | DIR | MKDIR | RMDIR | DEL | REN | MOVE

Команда rmdir

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

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

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

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

Команда xcopy

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

Синтаксис этой команды:

XCOPY источник [результат] [ключи]

Команда XCOPY имеет множество ключей, мы коснемся лишь некоторых из них. Ключ /D[:[дата]] позволяет копировать только файлы, измененные не ранее указанной даты. Если параметр дата не указан, то копирование будет производиться только если источник новее результата. Например, команда

   XCOPY "C:Мои документы*.*" "D:BACKUPМои документы" /D

скопирует в каталог ‘D:BACKUPМои документы’ только те файлы из каталога ‘C:Мои документы’, которые были изменены со времени последнего подобного копирования или которых вообще не было в ‘D:BACKUPМои документы’.

Ключ /S позволяет копировать все непустые подкаталоги в каталоге-источнике. С помощью же ключа /E можно копировать вообще все подкаталоги, включая и пустые.

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

Ключ /I важен для случая, когда копируются несколько файлов, а файл назначения отсутствует. При задании этого ключа команда XCOPY считает, что файл назначения должен быть каталогом. Например, если задать ключ /I в команде копирования всех файлов с расширением txt из текущего каталога в несуществующий еще подкаталог TEXT,

   XCOPY  *.txt TEXT /I

то подкаталог TEXT будет создан без дополнительных запросов.

Ключи /Q, /F и /L отвечают за режим отображения при копировании. При задании ключа /Q имена файлов при копировании не отображаются, ключа /F — отображаются полные пути источника и результата. Ключ /L обозначает, что отображаются только файлы, которые должны быть скопированы (при этом само копирование не производится).

С помощью ключа /H можно копировать скрытые и системные файлы, а с помощью ключа /R — заменять файлы с атрибутом “Только для чтения”. Например, для копирования всех файлов из корневого каталога диска C: (включая системные и скрытые) в каталог SYS на диске D:, нужно ввести следующую команду:

   XCOPY C:*.* D:SYS /H

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

Используя XCOPY можно при копировании обновлять только уже существующие файлы (новые файлы при этом не записываются). Для этого применяется ключ /U. Например, если в каталоге C:2 находились файлы a.txt и b.txt, а в каталоге C:1 — файлы a.txt, b.txt, c.txt и d.txt, то после выполнения команды

   XCOPY C:1 C:2 /U

в каталоге C:2 по-прежнему останутся лишь два файла a.txt и b.txt, содержимое которых будет заменено содержимым соответствующих файлов из каталога C:1.Если с помощью XCOPY копировался файл с атрибутом “Только для чтения”, то по умолчанию у файла-копии этот атрибут снимется. Для того, чтобы копировать не только данные, но и полностью атрибуты файла, необходимо использовать ключ /K.

Ключи /Y и /-Y определяют, нужно ли запрашивать подтверждение перед заменой файлов при копировании. /Y означает, что такой запрос нужен, /-Y — не нужен.

Команды mkdir и rmdir

Для создания нового каталога и удаления уже существующего пустого каталога используются команды MKDIR [диск:]путь и RMDIR [диск:]путь [ключи] соответственно (или их короткие аналоги MD и RD). Например:

MKDIR "C:Примеры"
RMDIR "C:Примеры"

Команда MKDIR не может быть выполнена, если каталог или файл с заданным именем уже существует. Команда RMDIR не будет выполнена, если удаляемый каталог не пустой.

Команды одной строкой

Очистить консоль — cls

Информация о системе — systeminfo

d:html>systeminfo

Имя узла:                         DESKTOP-6MHURG5
Название ОС:                      Майкрософт Windows 10 Pro
Версия ОС:                        10.0.20246 Н/Д построение 20246
Изготовитель ОС:                  Microsoft Corporation
Параметры ОС:                     Изолированная рабочая станция
Сборка ОС:                        Multiprocessor Free

Информация о сетевых настройках — ipconfig

d:html>ipconfig
Настройка протокола IP для Windows
Адаптер Ethernet Ethernet 2:

   Состояние среды. . . . . . . . : Среда передачи недоступна.
   DNS-суффикс подключения . . . . . :

Список запущенных процессов — tasklist

c:>tasklist

Имя образа                     PID Имя сессии          № сеанса       Память
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         8 КБ
System                           4 Services                   0     2 688 КБ
Secure System                   72 Services                   0    23 332 КБ
…

Открыть файл

Чтобы открыть файл в текущей папке, введите его полное имя с расширением. Например, blog.txt или setup.exe.

:/>  | Обзор Nero 8

Переименование файла — ren или rename

Последовательно вводим ren, старое и новое имя файла.

d:html>dir
 Содержимое папки d:html

03.11.2020  19:23    <DIR>            .
03.11.2020  19:23    <DIR>            ..
03.11.2020  19:59                 0 blag.txt

d:html>ren blag.txt blog.txt

d:html>dir
 Содержимое папки d:html

03.11.2020  19:23    <DIR>            .
03.11.2020  19:23    <DIR>            ..
03.11.2020  19:59                 0 blog.txt

Перейти в другую папку — cd

Команда cd без аргументов выводит название текущей папки.

Перейти в папку внутри текущего каталога

C:content-server>cd assets
C:content-serverassets>

Перейти на одну папку вверх

C:content-serverassets>cd ..
C:content-server>

Перейти в папку на другом диске

c:content-server>cd /d d:/ 
d:>

Чтобы просто изменить диск, введите c: или d:

Показать дерево папок — tree

В любом момент мы можем увидеть структуру папок. Для этого используется команда tree.

d:html>tree
Структура папок тома DATA
Серийный номер тома: 0000-0000
D:.
├───code
└───css
    └───js

Если вы хотите посмотреть содержимое всего диска, введите tree в корне нужного диска. Получится красивая анимация, а если файлов много, то ещё и немного медитативная.

Содержимое текущей папки — dir

Выводит список файлов и папок в текущей папке.

C:content-server>dir
 Том в устройстве C имеет метку SYSTEM
 Серийный номер тома: 2C89-ED9D

 Содержимое папки C:content-server

06.10.2020  00:41    <DIR>          .
06.10.2020  00:37    <DIR>          .circleci
16.07.2020  16:04               268 .editorconfig
16.07.2020  16:04                10 .eslintignore
16.07.2020  16:04               482 .eslintrc
06.10.2020  00:37    <DIR>          .github
16.07.2020  16:04                77 .gitignore
06.10.2020  00:41    <DIR>          assets
06.10.2020  00:41    <DIR>          gulp
16.07.2020  16:10               379 gulpfile.js
16.07.2020  16:10           296 320 package-lock.json
16.07.2020  16:10               751 package.json
16.07.2020  16:04               509 README.md

Создать папку — mkdir или md

Создаём пустую папку code внутри папки html:

d:html>mkdir code
d:html>dir

 Содержимое папки d:html

03.11.2020  19:23    <DIR>           .
03.11.2020  19:23    <DIR>           ..
03.11.2020  19:25    <DIR>           code
               0 файлов              0 байт
               3 папок  253 389 438 976 байт свободно

Создаём несколько пустых вложенных папок — для этого записываем их через косую черту.

d:html>mkdir cssjs
d:html>dir Том в устройстве D имеет метку DATA Серийный номер тома: 0000-0000 Содержимое папки d:html 03.11.2020 19:23 <DIR> . 03.11.2020 19:23 <DIR> .. 03.11.2020 19:25 <DIR> code 03.11.2020 19:29 <DIR> css

Создаётся папка css, внутри которой находится папка js. Чтобы проверить это, используем команду tree. Она показывает дерево папок.

Справка по командам — help

Команда help без аргументов выводит список всех возможных команд. help вместе с именем команды выведет справку по этой команде.

d:html>help tree
Графическое представление структуры папок или пути.

TREE [диск:][путь] [/F] [/A]

   /F   Вывод имен файлов в каждой папке.
   /A   Использовать символы ASCII вместо символов национальных алфавитов.

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

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

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

rmdir Dir1

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

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

rmdir Dir1 Dir2 Dir3

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

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

rmdir Dir3

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

rmdir: failed to remove ‘dir3’: Directory not empty

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

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

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

rmdir -p Dir1/Dir2/Dir3

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

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

Удаление файла — del или erase

Команда для удаления одного или нескольких файлов.

d:html>del blog.txt

Удалить папку — rmdir или rd

Чтобы удалить конкретную папку в текущей, введите команду rmdir.

d:htmlcss>rmdir js

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

d:htmlcss>d:html>rmdir css
Папка не пуста.

Чтобы удалить дерево папок, используйте ключ /s. Тогда командная строка запросит подтверждение перед тем, как удалить всё.

d:html>rmdir css /s
css, вы уверены [Y(да)/N(нет)]? y

Итоги

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

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

Оставьте комментарий