Истиной является Linux, не нуждается в сертификации SUS и не хочет становиться Unix. И этому ничего не недостает путем выполнения так.
Необходимо заплатить для становления SUS-сертифицируемыми, и это на самом деле очень дорого. Это - то, что подобный BSD и поставщики GNU/операционной системы Linux не относятся к нему.
Больше всего GNU/дистрибутив Linux следует за Основой Стандарта Linux, которая является бесплатной и распознанной почти всеми поставщиками Linux.
Если Ваша версия "находки" реализует - удаляют подкоманду, то можно попробовать
find directory -delete
В этом случае:
find ~/.local/share/Trash/ -delete
Некоторые команды, как комната, выполняют большую часть своей работы в ядре. В стандартных программах файловой системы, чтобы быть точным. Время, проведенное, выполняя системные вызовы, составляется таким образом, поэтому пока Ваша команда "комнаты" работает в течение долгого времени, она не делает большой работы в пространстве пользователя - системные вызовы выполняют большую часть работы.
Это зависит от Вашего определения быстро. Ответы уже здесь дают хорошее решение для того, чтобы на самом деле удалить каталоги из файловой системы, но если то, в чем Вы действительно нуждаетесь, должно освободить имя каталога максимально быстро, переименовывание в той же файловой системе мгновенно:
{ mv directory directory.gone && rm -rf directory.gone; } &
Технически это обманывает, так как я не ускорил фактическое удаление, но практически это очень полезно: Я использую этот прием все время, таким образом, я не должен ожидать медленных операций удаления.
Это - только частичный ответ, проливая свет на три значения возвраты команды; заключенный в кавычки из time(1)
страница справочника:
(i) прошедшее реальное время между вызовом и завершением, (ii) пользовательское процессорное время (сумма
tms_utime
иtms_cutime
значения в astruct tms
как возвращеноtimes(2)
), и (iii) системное процессорное время (суммаtms_stime
иtms_cstime
значения в astruct tms
как возвращеноtimes(2)
)."
rm -rf directory
или rm -rf *
, конечно, самый быстрый способ, если только ваш локальный rm
реализация нарушена.
Использование find
не дает никаких преимуществ.
Быстро это или медленно, в основном зависит от файловой системы и реализации ОС. Так что вопрос кажется неуместным.
UFS и ZFS в Solaris, как известно, очень быстро справляются с такого рода задачами, поскольку обе реализации файловых систем включают код отложенного фонового удаления, который вызывает unlink ()
и rmdir ()
вызывает быстрый возврат, даже если связанный объект в целом займет больше времени.
Благодаря отложенному фоновому удалению в ядре обновления каталога также могут выполняться быстро, что помогает ускорить всю операцию.
find ~/.local/share/Trash/*/ -delete
(конечно, это также удалит файлы (и директора) в любом из тех Повреждают / */subdirs также), – Olivier Dulac 04.03.2013, 18:16time
– Martin Thoma 04.03.2013, 19:53find directory -delete
действительно быстрее, чемrm -rf directory
? В конце концов, они выполняют ту же работу, и нет двух способов сделать это. философия – Gilles 'SO- stop being evil' 05.03.2013, 01:00