Самый быстрый способ удалить не пустой каталог в Linux

Я использую каталог команды rm -rf, но натолкнулся на следующую статью: Статья Что говорит о том, что rsynch для пустой папки - это самый быстрый способ? rsync -a - удалить пустое / a Почему это так? Есть ли другой более быстрый способ удалить не пустую папку?

Еще одна интересная статья об этой статье2

2 ответа

Решение

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

ls -f1 | xargs rm

объяснение

Так как ls -f1 не будет сортировать содержимое каталога, он сразу начнет вывод. rm Команда будет принимать только один аргумент: фактическое имя файла, полученное из первой команды. Это было единственное решение для удаления 3.000.000 файлов из каталога сеанса интернет-магазина Magento. Сервер работал на виртуальной машине с оперативной памятью всего 2 ГБ - у него не было никакой другой возможности удалить файлы.

Основанный на очень быстром взгляде на источники GNU Coreutils 8.21 и rsync 3.0.1, а также на то, что они делают со strace, rm из GNU Coreutils, кажется, вызывает malloc() немного больше, чем rsync, выполняя ту же самую вещь., Я сомневаюсь, что это полностью объясняет разницу в скорости, но, скорее всего, это часть объяснения.

Другие вопросы по тегам