Волшебство Unix, удалите все .pyc файлы из дерева каталогов?

На лету:

sudo swapoff /dev/hda3
sudo mkswap /dev/hda4
sudo swapon /dev/hda4

В течение времени начальной загрузки после выполнения mkswap редактируют/etc/fstab файл и изменение/dev/hda3 строка соответственно.

11
задан 7 September 2009 в 19:21
3 ответа

Если у Вас есть GNU, находят затем, что Вы, вероятно, хотите

find <directory name> -name '*.pyc' -delete

При необходимости в чем-то портативном затем, Вы более обеспечены с

find <directory name> -name '*.pyc' -exec rm {} \;

Если скорость является грандиозным предприятием, и у Вас есть GNU, находят и GNU xargs затем

find <directory name> -name '*.pyc' -print0|xargs -0 -p <some number greater than 1> rm

Это вряд ли даст Вам так большую часть скорости однако, вследствие того, что Вы будете главным образом ожидать на вводе-выводе.

28
ответ дан 2 December 2019 в 21:42
  • 1
    прекрасный... спасибо. It' s xargs я всегда забываю –  interstar 7 September 2009 в 14:25
  • 2
    На всякий случай у меня есть файлы с пробелами на имена, I' ve, выработавший привычку всегда использования-print0 и " xargs-0". –  Paul Tomblin 7 September 2009 в 14:28
  • 3
    You' совершенно правильное ре, должен был думать об этом первоначально., отредактированный для отражения этого. –  Cian 7 September 2009 в 14:36
  • 4
    Можно также непосредственно использовать '-delete' вместо '-print0 | xargs-0 rm'. но that' s верный, что эта опция isn' t существующий во всей версии ' find'. –  rolaf 7 September 2009 в 15:01

использование команды находит:

find /path/to/start -name '*.pyc' -exec rm -f {} \;
6
ответ дан 2 December 2019 в 21:42
  • 1
    That' s слишком медленный. Используя xargs быстрее, или если Ваша версия находки поддерживает его, измените " \; " в конце " + ". –  Paused until further notice. 7 September 2009 в 15:11
  • 2
    Это может быть немного медленнее - это выполняет " rm" однажды для каждого файла вместо того, чтобы обработать их в пакетном режиме - но it' s самый портативный способ сделать это. OP didn' t говорят, какой Unix он использовал, и Солярис находит все еще doesn' t имеют-print0 функцию. –  Kenster 7 September 2009 в 16:49
  • 3
    +1, OP заявила, что Unix не Linux, это - лучшее портативное решение. –  theotherreceive 7 September 2009 в 16:59
  • 4
    Я думаю, что этим решением является единственное разрешение удалить тонны файлов, если я неправильно не использую xargs, может оставить в командную строку слишком длинную ошибку. +1, это - мой выбор с лет также. –  drAlberT 7 September 2009 в 18:23
  • 5
    При использовании make-файла для разрабатывания проекта, Вы могли бы хотеть включить это к цели " clean". –  Tom Newton 7 September 2009 в 19:01

CD к запуску дерева каталогов затем:

найти. - называют '*.pyc' |xargs комнатой-f

1
ответ дан 2 December 2019 в 21:42
  • 1
    It' s не необходимый для cd, просто помещает главный каталог в find команда (вместо " dot"). –  Paused until further notice. 7 September 2009 в 15:10
  • 2
    Этот doesn' t обрабатывают пробелы вообще. –  Cian 7 September 2009 в 17:07

Теги

Похожие вопросы