У меня есть папка с 266778 подпапками. Как я могу удалить это?
я пытался
cd ~/.local/share/Trash/
sudo rm -rf *
но это занимает много времени. Через 1 минуту 25 секунд реального времени и 0,072 секунды пользовательского времени было удалено только 2500 папок. Таким образом, удаление этой папки займет более двух часов.
Есть ли более быстрый способ удалить эту папку? Почему такая большая разница между временем пользователя и реальным временем?
real 1m25.474s
user 0m0.072s
sys 0m28.142s
Я использую Linux 2.6.32 (Ubuntu 10.04.4 LTS).
filesystems
rm
Мартин Тома
источник
источник
Ответы:
Если ваша версия "find" реализует подкоманду -delete, вы можете попробовать
В таком случае:
Некоторые команды, такие как rm, выполняют большую часть своей работы в ядре. В подпрограммах файловой системы, если быть точным. Время, затрачиваемое на выполнение системных вызовов, учитывается таким образом, поэтому, пока ваша команда «rm» выполняется в течение длительного времени, она не выполняет много работы в пользовательской среде - системные вызовы выполняют большую часть работы.
источник
find ~/.local/share/Trash/*/ -delete
(конечно, это также удалит файлы (и каталоги) в любом из этих Trash / * / subdirs)time
find directory -delete
действительно быстрее, чемrm -rf directory
? В конце концов, они выполняют ту же самую работу, и нет двух способов сделать это.Это зависит от вашего определения поста . Ответы уже здесь дают хорошее решение для фактического удаления каталогов из файловой системы, но если вам действительно нужно как можно быстрее освободить имя каталога , переименование в той же файловой системе происходит мгновенно:
Технически это обман, так как я не ускорил фактическое удаление, но практически это очень полезно: я использую этот трюк все время, поэтому мне не нужно ждать медленных операций удаления.
источник
mktemp
это то , что я пытался вспомнить ...rm -rf directory
или,rm -rf *
конечно, самый быстрый метод, если ваша локальнаяrm
реализация не сломана.Использование не
find
дает никаких преимуществ.Является ли это быстрым или медленным, в основном зависит от файловой системы и реализации ОС. Так что вопрос кажется неуместным.
UFS и ZFS на Solaris , как известно, очень быстро с такой задачей , как обе реализации файловой системы включают задержка фона удаления кода , который заставляет
unlink()
иrmdir()
призывы вернуться быстро , даже если соответствующий объект займет больше времени , в общей сложности.Благодаря отложенному удалению фона в ядре обновления каталога также могут выполняться быстро, что помогает ускорить всю операцию.
источник
Это только частичный ответ, проливающий свет на три значения, которые возвращает команда; цитируется с
time(1)
man-страницы :источник