Рекурсивное удаление файлов linux

Рекурсивное удаление файлов linux

NAME

rm - remove files or directories

SYNOPSIS

DESCRIPTION

This manual page documents the GNU version of rm. rm removes each specified file. By default, it does not remove directories. If the -I or --interactive=once option is given, and there are more than three files or the -r, -R, or --recursive are given, then rm prompts the user for whether to proceed with the entire operation. If the response is not affirmative, the entire command is aborted. Otherwise, if a file is unwritable, standard input is a terminal, and the -f or --force option is not given, or the -i or --interactive=always option is given, rm prompts the user for whether to remove the file. If the response is not affirmative, the file is skipped.

OPTIONS

Remove (unlink) the FILE(s). -f, --force ignore nonexistent files and arguments, never prompt -i prompt before every removal -I prompt once before removing more than three files, or when removing recursively. Less intrusive than -i, while still giving protection against most mistakes --interactive[=WHEN] prompt according to WHEN: never, once (-I), or always (-i). Without WHEN, prompt always --one-file-system when removing a hierarchy recursively, skip any directory that is on a file system different from that of the corresponding command line argument --no-preserve-root do not treat '/' specially --preserve-root do not remove '/' (default) -r, -R, --recursive remove directories and their contents recursively -d, --dir remove empty directories -v, --verbose explain what is being done --help display this help and exit --version output version information and exit By default, rm does not remove directories. Use the --recursive (-r or -R) option to remove each listed directory, too, along with all of its contents. To remove a file whose name starts with a '-', for example '-foo', use one of these commands: rm -- -foo rm ./-foo Note that if you use rm to remove a file, it might be possible to recover some of its contents, given sufficient expertise and/or time. For greater assurance that the contents are truly unrecoverable, consider using shred.

AUTHOR

Written by Paul Rubin, David MacKenzie, Richard M. Stallman, and Jim Meyering.

REPORTING BUGS

Report rm bugs to bug-coreutils@gnu.org GNU coreutils home page: http://www.gnu.org/software/coreutils/> General help using GNU software: http://www.gnu.org/gethelp/> Report rm translation bugs to http://translationproject.org/team/>
Copyright © 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

unlink(1), unlink(2), chattr(1), shred(1) The full documentation for rm is maintained as a Texinfo manual. If the info and rm programs are properly installed at your site, the command info coreutils 'rm invocation' should give you access to the complete manual.

© 2019 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.

Читайте также:  Checkpoint ssl vpn linux

Источник

Команда rm

Команда rm в Linux

По умолчанию команда rm не удаляет директории. Чтобы удалить директорию и все ее содержимое, включая вложенные директории, нужно использовать опцию -r (рекурсивное удаление).

Синтаксис

файл(ы) — один или несколько файлов и/или директорий, записанных через пробел. Можно использовать шаблон (например, *.txt ).

Опции

Игнорировать несуществующие файлы и аргументы. Никогда не выдавать запросы на подтверждение удаления.

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

  • never — никогда не выдавать запросы на подтверждение удаления.
  • once — выводить запрос один раз (аналог опции -I ).
  • always — выводить запрос всегда (аналог опции -i ).

Если значение КОГДА не задано, то используется always

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

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

Примечание

Если нужно удалить файл, название которого начинается с символа — , например, файл -myfile , то используется следующая команда:

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

Удалить файл

Чтобы удалить файл с помощью команды rm достаточно указать название файла:

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

rm myfile1.txt myfile2.txt myfile3.txt

Принудительно удалить защищенный файл

Если файл защищен от записи, то по умолчанию будет выдан запрос на подтверждение операции удаления. Чтобы запрос не выводился, и происходило удаление защищенных файлов, используется опция -f

Удалить все файлы в текущей директории

Чтобы удалить все файлы в текущей директории можно использовать шаблонную запись звездочка *

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

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

Выдать запрос на удаление один раз

При использовании опции -I выводится всего один запрос на подтверждение удаления файлов, причем, только если удаляемых файлов четыре и более. Если файлов 3, или 2, или 1, то запрос не выводится.

Читайте также:  Низкоуровневое форматирование sd карты linux

Команда RM. Запрос на удаление файлов

Удалить директорию и ее содержимое

Для удаления директорий и их содержимого используется опция -r . Удалим директорию mydir и все файлы и директории внутри нее:

Видео: Удаление корневого раздела командой RM

Источник

Примеры команды RM Linux

rm означает «remove», как следует из названия, команда rm используется для удаления файлов и каталогов в UNIX-подобной операционной системе. Если вы новичок в Linux, вы должны быть очень осторожны при запуске команды rm, потому что, как только вы удалите файлы, вы не сможете восстановить содержимое файлов и каталогов. Хотя есть некоторые инструменты и команды, с помощью которых можно восстановить удаленные файлы, но для этого вам нужны экспертные навыки.

В этом посте я продемонстрирую 10 примеров команд Linux rm. Ниже приведен основной синтаксис команды rm.

Удаление файла

Давайте удалим файл с именем «linux.log»

Удаление нескольких файлов одновременно.

Давайте предположим, что я хочу удалить четыре текстовых файла одновременно. Используйте приведенный ниже синтаксис.

$ rm file1.txt file2.txt file3.txt file4.txt

Интерактивное удаление файлов

Параметр ‘-i‘ спрашивает разрешение перед удалением, как показано ниже.

$ rm -i linuxstufff.log rm: remove regular file ‘linuxstufff.log’? y

Удаление пустой директории

Используйте опцию «-d» для удаления пустой папки.

$ ls -R appdata/ appdata/: $ rm -d appdata/

Вы также можете использовать команду ‘rmdir‘ для удаления пустых папок.

$ ls -R appdata/ appdata/: $ rmdir appdata

Рекурсивное удаление директорий

Команде rm вместе параметром ‘-r‘ рекурсивно удалит все файлы и подкаталогов в родительской директории.

$ ls -lR dbstore/ dbstore/: total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 26 23:59 file1.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 26 23:59 file2.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 26 23:59 file3.log drwxrwxr-x. 2 mordeniuss mordeniuss 6 Mar 26 23:59 service dbstore/service: total 0 $ rm -r dbstore/

Удаление файлов и подкаталогов интерактивно

Используйте опцию ‘-ri‘ в команде rm для интерактивного удаления файлов и подкаталогов.

$ ls -lR dbstore/ dbstore/: total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 00:02 file1.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 00:02 file2.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 00:02 file3.log drwxrwxr-x. 2 mordeniuss mordeniuss 6 Mar 27 00:02 service dbstore/service: total 0 [mordeniuss@cloud ~]$ rm -ri dbstore/ rm: descend into directory ‘dbstore/’? y rm: remove regular empty file ‘dbstore/file1.log’? y rm: remove regular empty file ‘dbstore/file2.log’? y rm: remove regular empty file ‘dbstore/file3.log’? y rm: remove directory ‘dbstore/service’? y rm: remove directory ‘dbstore/’? y

Принудительное удаление файлов

Параметр ‘-f‘ в команде rm принудительно удаляет файлы независимо от их прав доступа, а также игнорирует несуществующие файлы.

Давайте удалим защищенный от записи файл ‘tech.txt’

$ ls -l tech.txt -r--r--r--. 1 mordeniuss mordeniuss 0 Mar 27 00:23 tech.txt $ rm tech.txt rm: remove write-protected regular empty file ‘tech.txt’?

Как мы видим выше, когда мы пытаемся удалить файл, защищенный от записи, с помощью команды rm без опции ‘-f‘, выходит предупреждение.

Читайте также:  Alt linux переменные окружения

Теперь попробуйте удалить файл, используя опцию ‘-f‘.

Также попробуем удалить несуществующий файл.

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

Давайте рассмотрим пример, каталог ‘home/home/mordeniuss/location/protected‘ защищен от записи, а файл ‘db_stuff‘ внутри этого каталога нет.

$ ls -ld /home/mordeniuss/location/ drwxrwxr-x. 2 root root 29 Mar 27 00:43 /home/mordeniuss/location/ $ ls -l /home/mordeniuss/location/db_stuff -rw-rw-r--. 1 mordeniuss mordeniuss 17 Mar 27 00:43 /home/mordeniuss/location/db_stuff $ rm -f /home/mordeniuss/location/db_stuff rm: cannot remove ‘/home/mordeniuss/location/db_stuff’: Permission denied

Проверка при удалении более 3 файлов или рекурсивном удаление

Параметр ‘-I‘ в команде rm перед удалением более трех файлов или рекурсивным удалением запрашивает подтверждение.

Предположим, я хочу удалить все файлы журнала, которые начинаются с имени «app» в каталоге «linux_store».

$ ls -l linux_store/ total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app1.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app2.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app3.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app4.log -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:07 app5.log $ rm -I linux_store/app* rm: remove 5 arguments? y

Регулярные выражения в команде rm

Мы можем использовать регулярные выражения в команде rm, некоторые примеры показаны ниже:

Давайте удалим 5 файлов журнала, начиная с log1 до log5 в каталоге ‘linux_store‘.

$ pwd /home/mordeniuss/linux_store $ ll total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log1.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log2.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log3.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log4.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log5.txt -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 01:15 log6.txt . $rm -f log.txt

Удалим все файлы в данной директории, которые заканчиваются на ‘.txt

Удалим все файлы в текущем каталоге, которые имеют три символа в расширение.

Удаление большого количества файлов

Если вы пытаетесь удалить большое количество файлов с помощью команды rm, вы получите сообщение об ошибке
Argument list too long‘ (Список аргументов слишком длинный)

В приведенном ниже примере я пытаюсь удалить все файлы (около 300001) каталога ‘/home/mordeniuss/linux_store‘ сразу.

$ ls -l | wc -l 300001 $ rm *.log -bash: /bin/rm: Argument list too long

Чтобы решить эту проблему, используйте команду:

$ find ~/linux_store/ -type f -exec rm <> \;

Удаление файлов, начинающихся с дефиса (-)

Давайте предположим, что у нас есть файл с именем ‘-store‘ в нашем текущем каталоге, и мы хотим удалить этот файл.

$ ll total 0 -rw-rw-r--. 1 mordeniuss mordeniuss 0 Mar 27 02:05 -store $ rm -store rm: invalid option -- 's' Try 'rm --help' for more information. [mordeniuss@cloud linux_store]$

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

$ rm -- \ -store ИЛИ $ rm ./\ -store 

Источник

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