Linux удалить много файлов

Обновлено: 05.07.2024

В этом руководстве мы покажем вам, как использовать команды rm , unlink и rmdir для удаления файлов и каталогов в Linux.

Как удалить файлы

Чтобы удалить (или удалить) файл в Linux из командной строки, используйте команду rm (remove) или unlink .

Команда unlink позволяет удалить только один файл, а с помощью rm вы можете удалить сразу несколько файлов.

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

Чтобы удалить один файл, используйте команду rm или unlink за которой следует имя файла:

Если файл защищен от записи, вам будет предложено подтвердить, как показано ниже. Чтобы удалить тип файла y и нажмите Enter . В противном случае, если файл не защищен от записи, он будет удален без запроса.

Чтобы удалить сразу несколько файлов, используйте команду rm после которой укажите имена файлов, разделенные пробелом.

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

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

Используйте rm с параметром -i для подтверждения каждого файла перед его удалением:

Чтобы удалить файлы без запроса, даже если файлы защищены от записи, передайте параметр -f (force) команде rm :

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

Как удалить каталоги (папки)

В Linux вы можете удалять / удалять каталоги с помощью rmdir и rm .

Чтобы удалить пустой каталог, используйте rmdir или rm -d за которым следует имя каталога:

Чтобы удалить непустые каталоги и все файлы в них, используйте команду rm с параметром -r (рекурсивный):

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

Чтобы удалить непустые каталоги и все файлы без запроса, используйте rm с параметрами -r (рекурсивный) и -f :

Чтобы удалить сразу несколько каталогов, используйте команду rm -r после которой укажите имена каталогов, разделенные пробелом.

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

Выводы

К настоящему времени вы должны хорошо понимать, как использовать команды Linux rm , rmdir и unlink и у вас должна быть возможность безопасно удалять файлы и каталоги из командной строки.

Как удалить миллионы файлов в linux? Проблемам достаточно известная и, самое главное, не так проста как кажется. Симптомы:

  • Невозможно сделать ls в папке, зависает терминал
  • Невозможно удалить так же в MC по той же причине невозможно зайти в папку.
  • Консольные утилиты отказываются удалять файлы поскольку Argument list too long
  • find ls так же выдают Как удалить миллионы файлов в linux Argument list too long

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

При определенном условие все еще отрабатывает такой хитрый вариант как

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

Основная проблема в том, что мне нужно удалить именно данный файл, а не всю папку или все файлы находящиеся в ней. В результате для удаления 14 000 000 файлов мне потребовалось сделать ход конем в первую очередь отказаться от регулярок, поскольку они требуют построения всего дерева. И отказаться от любых утилит, составляющих весь список в пользу построчного построения. Используем тот же find

Далее, после получения файла, в моем случае он было около 200 мегабайт, подставляем ко всем


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

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


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

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

1. Чтобы удалить все не скрытые файлы из каталога, введите:

2. Чтобы удалить из каталога все файлы с расширением .txt, введите:

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

4. Чтобы удалить все скрытые файлы и каталоги из папки, введите:

5. Чтобы удалить все файлы из папки, но не удалять ее подкаталоги:

6. Чтобы удалить папку, в названии которой есть пробел, всегда используйте кавычки, например:

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

Например: Чтобы удалить каталог с именем «Good Morning», введите:

7. Вы можете увидеть, что происходит при удалении всех файлов в каталоге, передав параметр -v команде rm:

8. Чтобы удалить все файлы из каталога с расширением .sh, вы также можете использовать команду find,

Примечание: вместо «* .sh» просто укажите «*», чтобы удалить все файлы.

Общие сведения о параметрах команды rm

  • -f: игнорировать несуществующие файлы и аргументы, никогда не запрашивать
  • -r: рекурсивно удалять каталоги и их содержимое
  • -v: посмотреть, что происходит

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


Существует множество вариантов лучших тем для Ubuntu. Но тестирование всех тем и выбор лучшей из них отнимает много времени и сил. Да и предустановленная тема может вам не понравиться. Поэтому мы отобрали 10 лучших тем Ubuntu для вашего рабочего стола Linux. Итак, как превратить рабочий стол в красивую и элегантную среду? С помощью нескольких простых.

Краткий обзор того, как работают гипервизоры и в чем разница между двумя их типами. Прежде чем вы увидите разницу между гипервизором типа 1 и типа 2 и узнаете, какой из них лучше (если это вообще возможно), давайте сначала рассмотрим, что такое гипервизор. Что такое гипервизор? Гипервизор – это системное программное обеспечение, которое выступает в качестве.

Итак, вы установили свой сервер Linux и установили все необходимые пакеты. Теперь вы собираетесь установить другой сервер с аналогичными пакетами. Вы можете сохранить команды установки первого сервера и запустить их на второй машине. Как быть, если вы делали это в течение нескольких недель и забыли некоторые детали, но вам нужно быстро запустить другой сервер. ssh.

Команда Linux top широко используется системными администраторами Linux в режиме реального времени для проверки использования системных ресурсов, таких как процессор, дисковый ввод/вывод, средняя загрузка системы, запущенные процессы и использование памяти. Я обычно использую Oracle OSWatcher Black Box (OSWbb) для сбора различных системных данных для диагностики проблем производительности в течение определенного периода времени. Но если вы.

у меня есть этот список файлов внутри Linux server:

Я удаляю выбранные файлы журнала один за другим, используя команду rm -rf см. ниже:

есть ли другой способ, чтобы я мог удалить выбранные файлы сразу??

Bash поддерживает все виды подстановочных знаков и расширений.

ваше точное дело будет обрабатываться фигурные скобки, например:

больше расширить до одна команда со всеми тремя аргументами и эквивалентна набору:

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

использовать подстановочный знак ( * ) для выбора нескольких файлов.

например, следующая команда удаляет все файлы с именами, начинающимися с abc.log.2012-03- .

Я бы рекомендовал под управлением ls abc.log.2012-03-* чтобы перечислить файлы, чтобы вы могли видеть, что вы собираетесь удалить перед запуском .

для получения более подробной информации см. страницу bash man на расширение имени файла.

если вы хотите удалить все файлы, имена которых соответствуют определенной форме, по шаблону (шаблон Глоб) является наиболее простым решением. Некоторые примеры:

регулярные выражения более мощные, чем подстановочные знаки; вы можете кормить вывод grep to rm -f . Например, если некоторые имена файлов начинаются с "abc.log" и с "ABC.log" , grep можно сделать без учета регистра:

когда я это делаю, я запускаю сначала проверьте, что он выдает результат, который я хочу -- особенно если я использую rm -f :

здесь !! расширяется до предыдущей команды. Или я могу ввести стрелку вверх или Ctrl-P и отредактировать предыдущую строку, чтобы добавить .

это предполагает, что вы используете оболочку Bash. Некоторые другие оболочки, особенно csh и tcsh и некоторые более старые оболочки SH, могут не поддерживать $(. ) синтаксис. Вы можете использовать эквивалентный backtick синтаксис:

на $(. ) синтаксис легче читать, и если вы действительно амбициозны, он может быть вложен.

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

затем я могу отредактировать list файл вручную, оставляя только файлы, которые я хочу удалить, и затем:

(предполагается, что ни одно из имен файлов не содержит забавных символов, особенно пробелов.)

или, при редактировании list файл, я могу добавить rm -f в начале каждой строки, а затем:

дикая карта будет хорошо работать для этого, хотя для безопасности было бы лучше использовать дикую карту как можно меньше, поэтому что-то вроде этого:

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

просто используйте многострочный выбор в sublime, чтобы объединить все файлы в одну строку и добавить пробел между каждым именем файла, а затем добавить rm в начале списка. Это в основном полезно, когда в именах файлов, которые вы хотите удалить, нет шаблона.

Я не гуру linux, но я считаю, что вы хотите передать свой список выходных файлов в xargs rm -rf . Я использовал нечто подобное в прошлом с хорошими результатами. Сначала проверьте пример каталога!

EDIT - возможно, я неправильно понял, основываясь на других ответах, которые появляются. Если вы можете использовать подстановочные знаки, отлично. Я предположил, что ваш исходный список, который вы отобразили, был сгенерирован программой, чтобы дать вам ваш "выбор", поэтому я подумал, что xargs был бы путь к идти.

Если вы хотите удалить все файлы, которые относятся к каталог сразу. Например; имя каталога yor - "log", а каталог" log " включает abc.бревно.2012-03-14, abc.бревно.2012-03-15. файлы ect. Вы должны быть над каталогом журнала и

Читайте также: