Случайно удалили важные файлы на устройстве Linux?
Не беспокойтесь. Wondershare Recoverit может вернуть потерянные файлы в течение 3 шагов. Профессиональное программное обеспечение для восстановления данных в Linux является абсолютно надежным и на 100% безопасным.
Каталог может содержать множество подкаталогов и файлов. При работе с файловой системой Linux может потребоваться удаление всех файлов и подкаталогов в каталоге. Это называется рекурсивным удалением. Для рекурсивного удаления файлов или каталогов (также известных как папки в Windows) в Linux используется команда rm. Команда rmdir удаляет только пустые каталоги. В этом руководстве представлены шаги по рекурсивному удалению файлов и каталогов в Linux.
Часть 1. Как удалить каталог рекурсивно в Linux с помощью команды rm
Краткое описание синтаксиса команды rm для рекурсивного удаления каталогов/папок:
Синтаксис команды |
Описание |
-f |
Сильная опция. Никогда не запрашивает несуществующие файлы или аргументы. |
-r |
Рекурсивно удалять каталоги и их содержимое |
-v |
Избыточный вывод |
rm -- '-dir1' |
Удалить каталог или файл, имя которого начинается с символа '-'. |
rm ./-dir1 |
То же самое, что и раньше |
rm -rfv 'имя директории здесь' |
Поставьте кавычки вокруг проблемного имени файла/папки. |
rm -rfv \$dirname1 |
То же самое, что и раньше |
В Linux и Unix-подобных системах все считается файлом. Другими словами, к "файлам" относятся фотографии, документы, каталоги/папки, SSD/жесткие диски, сетевые карты, USB-устройства, клавиатуры, принтеры и сетевые соединения.
Примеры рекурсивного удаления папки
В этом примере мы рекурсивно удалим папку data в текущем домашнем каталоге:
rm -r /home/vivek/data/
Перед удалением каталога data указанный каталог /home/vivek/data/
будет очищен от всех подкаталогов, включая их подкаталоги и файлы. Если в командной строке не указана опция -f
(force), пользователю будет предложено удалить все файлы, защищенные от записи в каталогах:
rm -rf dirname-here
В качестве альтернативы можно использовать следующую команду:
rm -r -f /path/to/folder/
Для удаления папки, имя которой начинается с буквы "-
", например "-dsaatia
", используйте одну из следующих команд:
rm -rf -- --dsaatia
Вы также можете выполнить следующую команду:
rm -rf ./--dsaatia
Для просмотра подробных результатов можно использовать опцию -v
. Другими словами, команда rm в Linux будет объяснять, что происходит с нашими файлами и папками. Например:
rm -rfv /path/to/dir1
rm -r -f -v /home/vivek/oldpartpics
Удаление папок с уникальными символами имен
Ваши папки и файлы могут содержать пробелы, точки с запятой, обратные слеши и другие символы в Linux. Например:
ls -l
Предположим, что у нас есть папка "Our Sales Data", а в ней "baddir#
" или "dir2 ;#
". Как же избавиться от каталогов с необычными именами? Решение простое. Заключим проблемное имя файла или папки в кавычки. В качестве примера:
rm 'Our Sales Data'
rm -rfv '/path/to/Dir 1 ;'
rm -r -f -v "baddir#"
rm a\ long \dir1 \name
Иногда перед мета-символом в имени файла или папки требуется обратная косая черта (\
):
rm \$dir1
Часть 2. Как удалять файлы рекурсивно в Linux с помощью команды rm
Рекурсивное удаление всех файлов
При использовании флага -r
команда rm удаляет содержимое всех типов файлов.
Но сначала, используя команду ls
, посмотрим на домашние каталоги. В данном примере имеется пять каталогов: Desktop, dir2, Documents, Downloads и removerecurdir.
ls ~/
Предположим, что мы хотим удалить каталог removecurdir
и его содержимое, включая все файлы и подкаталоги. Выполните приведенный ниже синтаксис.
rm -r removerecurdir/
Вывод ls показывает, что каталог и его содержимое были успешно удалены.
Рекурсивное удаление файлов по размеру
Ниже описаны шаги по рекурсивному удалению файлов (<10 МБ) с помощью команды find
.
Синтаксис команды find
следующий:
find <ParentDirectory> -type f -size -<размер и единицы измерения> -exec rm {} +
В приведенном ниже примере для доступа к защищенным файлам можно использовать команду sudo
.
sudo find /var/log -type f -size -10M -exec rm {} +
Знак минус (-
) должен быть заменен на знак плюс (+
).
find <ParentDirectory> -type f -size +<размер и единицы измерения> -exec rm {} +
В следующем примере я использую предыдущий синтаксис для удаления файлов размером более 1 ГБ.
find /var/log -type f -size +1G -exec rm {} +
Рекурсивное удаление файлов по расширению (тип файла)
В следующем разделе описано, как удалять файлы рекурсивно по расширению или типу файла.
Найдите содержимое домашнего каталога, который называется testhint
с помощью команды tree.
tree testhint/
Родительский каталог testhint имеет файл (file1.txt) и два подкаталога: testhint2 имеет file3.txt, а testhint3 имеет file3 и something.txt.
Предположим, что вы хотите рекурсивно удалить все txt-файлы. Синтаксис следующий:
find <ParentDirectory> -type f -name '*.<Extension>' -print -delete
Затем выполните эту команду для рекурсивного удаления всех текстовых файлов в родительском каталоге testhint.
find ~/testhint -type f -name '*.txt' -print -delete
Все текстовые файлы были удалены, остался только файл file3 без расширения.
дерево testhint
Удалить файлы по расширению можно также с помощью команд find вместе с exec
.
Синтаксис для удаления файлов по расширению с командой -exec
следующий:
find <ParentDirectory> -type f -name '*.<Extension>' -exec rm -f {} \;
Выполните приведенную ниже команду для удаления файлов .log.
find ~/testhint -type f -name '*.log' -exec rm -f {} \;
Аналогичное решение можно получить с помощью команды xargs
. Различие между xargs и exec заключается в том, что exec выполняет функцию rm всякий раз, когда файл соответствует условию. Команда xargs выполняет команду rm один раз для каждого найденного файла, удовлетворяющего условию.
Чтобы удалить все файлы по расширению с помощью find
и xargs
, используйте следующий синтаксис:
find <ParentDirectory> -name "*.<FileExtension>" -print0 | xargs -0 rm
Введите команду, показанную ниже, чтобы удалить все файлы .c
с помощью xargs.
find . -имя "*.c" -print0 | xargs -0 rm
И снова выбранные файлы расширения были успешно удалены.
Рекурсивное удаление всех файлов на основе разрешений
Давайте посмотрим на новое содержимое каталога testhint. Четыре файла имеют полный доступ (file2, file3.c, file6.c и file7).
Предположим, что вы хотите найти и удалить все файлы с полными правами для всех. Синтаксис выглядит следующим образом:
find <ParentDirectory> -perm <Permissions> -print0 | xargs -0 rm
Выполните приведенную ниже команду для удаления всех файлов с полным доступом для всех пользователей.
find ~/testhint -perm 777 -print0 | xargs -0 rm
Рекурсивное удаление файлов на основе времени их модификации или создания
Выполните следующий синтаксис:
find ~/testhint -perm 777 -print0 | xargs -0 rm
Если требуется удалить файлы, созданные или модифицированные в последний день (последние 24 часа), используйте следующую команду, где 1
обозначает количество дней, а символ минус (-
) - файлы, созданные или модифицированные до заданного количества дней.
find <Каталог> -type f -mtime -1 -delete
Замените символ минус на символ плюс, чтобы удалить файлы, созданные или модифицированные до суток, до 24 часов.
find <Directory> -type f -mtime +1 -delete
Часть 3. Что делать, если вы случайно удалили файл или папку в Linux?
В Linux случайное удаление файла или папки может стать настоящей неприятностью, но есть действия, которые помогут повысить шансы на успешное восстановление:
- Прекратить работу с компьютером: Чтобы предотвратить дальнейшую потерю данных, немедленно прекратите работу с компьютером и не записывайте новые данные на диск, где находился удаленный файл.
- Действуйте быстро: Чем дольше вы ждете начала процесса восстановления, тем выше риск необратимой потери данных.
- Регулярно создавайте резервные копии: Регулярное создание резервных копий позволяет обеспечить наличие последней копии важных данных на случай их случайного удаления.
- Поддерживайте файловую систему в хорошем состоянии: Регулярное обслуживание диска, например, проверка на наличие ошибок и их исправление, поможет поддерживать файловую систему в хорошем состоянии и облегчит восстановление.
Лучшие средства восстановления данных Linux также помогут восстановить потерянные или удаленные файлы. Следуя этим советам и используя правильное средство восстановления данных, Вы можете увеличить шансы на успешное восстановление удаленных файлов и папок в Linux.
Wondershare Recoverit - безопасная и надежная программа для восстановления данных в Linux
5 481 435 человек скачали ее.
Восстанавливает потерянные или удаленные документы, фотографии, видео, музыку, электронную почту и другие 1000+ типов файлов эффективно, безопасно и полностью.
Совместимость со всеми основными дистрибутивами Linux, включая Ubuntu, Linux Mint, Debian, Fedora, Solus, Opensuse, Manjaro и др.
Помогает при более чем 500 сценариях потери данных, таких как удаление, форматирование диска, сбой ОС, отключение питания, вирусная атака, потеря раздела и т.д.
Простой интерфейс позволяет восстанавливать данные с жестких дисков Linux всего за несколько кликов.
Работает через удаленное соединение. Вы можете восстановить потерянные данные даже при сбое устройства Linux.
Подведение итогов
Поскольку Linux является настолько универсальной и адаптируемой операционной системой, пользователи могут рекурсивно использовать различные методы удаления файлов или каталогов (или папок) в Linux. Все описанные выше альтернативы применимы практически ко всем дистрибутивам Linux. Кроме того, при случайном удалении файлов и папок доступны средства восстановления данных в Linux.