[ad_1]
Управление файлами — это одна из распространенных задач, которые пользователь выполняет в системе Linux, в том числе создание, копирование, движущийсяизменение и удаление файлов и каталогов.
В этой статье приведены несколько советов по работе с командной строкой о том, как вы можете удалить большой каталог который содержит тысячи файлов в системе Linux.
Оглавление
Удалить файлы в Linux
Наиболее распространенный способ удаления файлов в системе Linux — использование команды команда rmкоторый принимает следующий формат синтаксиса:
$ rm [ options ] sample_file.txt
Например, чтобы удалить текстовый файл с именем файл1.txtвыполните команду:
$ rm file1.txt
Чтобы принудительно удалить файл без запроса разрешения, передайте -f
флаг следующим образом.
$ rm -f file1.txt
Удалить каталог в Linux
Чтобы удалить или удалить каталог с именем каталог_образцоввыполните следующую команду:
$ rm -rf sample_directory
-r
опция рекурсивно удаляет каталог вместе со всеми подкаталогами и файлами, содержащимися в нем.
Чтобы удалить или удалить пустой каталог, используйте команда rmdirкоторый пригодится, когда вы хотите удалить пустой каталог с именем test_directory как показано:
$ rmdir test_directory
Удалить большой каталог с кучей файлов
Когда команда rm выполняется, файловая система только удаляет ссылку на файл, что делает файл недоступным для пользователя, но в реальном смысле сами данные файла остаются на диске нетронутыми.
Поэтому, когда команда rm выдается, удаляется только ссылка на файлы, что освобождает блоки хранения в файловой системе.
Таким образом, существует несколько способов удаления файлов в Linux.
Удалить файлы с номером инода в Linux
Например, вы можете удалить файл, используя его номер индекса. Вы можете узнать номер инода файла, используя команда статистики как показано.
$ stat file1.txt File: file.txt Size: 4076 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 1573697 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ tecmint) Gid: ( 1000/ tecmint) Access: 2023-05-08 12:10:55.656070248 +0530 Modify: 2023-05-08 12:10:55.656070248 +0530 Change: 2023-05-08 12:10:55.656070248 +0530
Кроме того, вы можете пройти -i
флаг в лс команда при перечислении файлов внутри каталога.
$ ls -li 1573697 .rw-rw-r-- tecmint tecmint 4.0 KB Mon May 8 12:10:55 2023 file1.txt
Чтобы удалить файл, используя его индексный дескриптор, используйте команду найти команду как показано в синтаксисе ниже.
$ find /path/to/file -inum INODE_NUM -exec rm -i {} +
В нашем примере, чтобы удалить файл файл1.txt который находится в текущем каталоге, команда будет такой:
$ find /path/to/file -inum 1573697 -exec rm -i {} +
Ударять 'y'
для подтверждения удаления и нажмите ВХОДИТЬ.
Давайте теперь посмотрим, как удалить большие каталоги с тысячами файлов.
Создайте каталог с тысячами файлов
старый добрый г.м. Команда — это самый быстрый способ удалить большой каталог с тысячами файлов. Чтобы продемонстрировать это, мы сначала создать образец каталога и перейдите в него.
$ mkdir test_dir $ cd test_dir
Далее мы создадим безумно огромное количество файлов, в данном случае 500 000 текстовые файлы, используя следующие удар для цикла.
$ time for item in {1..500000}; do touch file_name$item.txt; done
Самый быстрый способ удалить каталог в Linux
Самый быстрый способ удалить большой каталог — использовать старый добрый г.м. каталог, как показано ниже. Здесь параметр времени отображает время, необходимое для успешного выполнения команды.
$ time rm -rf /test_dir
Из вывода видно, что удаление всего каталога заняло примерно 6 секунд.
Удалить большой каталог с помощью команды «Найти»
Другой способ удаления больших каталогов — использование команды найти команду как показано в следующем синтаксисе.
$ time find /path/to/directory -delete
Хотя и не так быстро, как г.м. команда, она все еще выполняет свою работу.
$ time find test_dir -delete
Удалить большой каталог с помощью команды Perl
Другой подход заключается в использовании Перл язык сценариев внутри каталога для удаления множества файлов.
$ cd test_dir $ time perl -e 'for(<*>){((stat)[9]<(unlink))}'
Из вывода вы можете сделать вывод, что удаление всех файлов в каталоге заняло гораздо больше времени, чем предыдущие команды, которые мы рассматривали ранее.
Заключение
Вот оно. В этом руководстве мы рассмотрели, как можно удалить большие каталоги, содержащие тысячи файлов в системе Linux.