Как использовать, находят для удаления *.py ~ и *.pyc файлы сразу?

Проверьте, есть ли у Вас ядра, Вы не используете. Они могут поднять много комнаты, и автоматическое управление пакетом Debian имеет тенденцию оставлять старые ядра. Например, если Вы выполняете ядро 2.6.32-5-686 (вывод uname -r), Вам не нужно linux-image-2.6.32-4-686 больше.

Для дальнейшего использования существует едва любая точка в наше время в разделении /usr и /var от остальной части системного раздела.

7
04.04.2013, 20:46
4 ответа

Вместо того, чтобы использовать -o почему не только действительно ли подстановочный знак копируют?

find . -name '*py[c~]' -delete

или:

find . -name '*py[c~]' -exec rm -f {} +
10
27.01.2020, 20:14
  • 1
    для этого конкретного случая. Обратите внимание, что это не regex, это - все еще подстановочный шаблон оболочки. –  Stéphane Chazelas 04.04.2013, 21:50
  • 2
    Ahh, я всегда понимал их, чтобы быть тем же. Спасибо за исправление этого. –  h3rrmiller 05.04.2013, 01:26

-a оператор (неявный между двумя предикатами) имеет приоритет -o, таким образом, Вам нужна круглая скобка:

find . \( -name '*pyc' -o -name '*py~' \) -a -exec rm -f {} +

(Я включаю -a выше для демонстрационной цели только, это не нужно, поскольку это неявно). Я заменил ; с + как нет, вероятно, никакого смысла работающего один rm на файл, если этого можно избежать.

10
27.01.2020, 20:14
  • 1
    Почему Вы просто не используете - удаляют? –  Aif 04.04.2013, 20:53
  • 2
    @Aif, потому что -delete не стандартная опция. Любой ценой используйте его если Ваш find поддержки это, но не используют его в сценариях, которые предназначены, чтобы быть портативными. –  Stéphane Chazelas 04.04.2013, 20:56
  • 3
    find много похож на Perl. Удивительно мощный, но только для записи. –  Plutor 05.04.2013, 01:43
  • 4
    @StephaneChazelas, О, я не знал! Я имею его под OSX и на нахожу и нахожу гну, таким образом, я, хотя, "если даже BSD находят, имеет его, портативный, это должно быть!". –  Aif 05.04.2013, 13:33

Если у Вас есть удар 4 +, Вы даже не должны находить, так как globstar даст Вам рекурсивный globbing:

shopt -s globstar
for f in ./**/*.py{c,~}; do rm "$f"; done

Отметьте это shopt потребности быть на его собственной строке, а не разделен a ; (и должен использоваться в самом верху сценария, непосредственно ниже хижины если возможный).

0
27.01.2020, 20:14
[118308]Я знаю, что вопрос не так уж и нов... но, возможно, достаточно было использовать[12136]
0
27.01.2020, 20:14

Теги

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