как найти & amp; удалить папку с определенным с помощью find

У меня есть диск с ежедневными резервными копиями (два раза в день) и вам нужно удалить папку в каждой резервной копии, которая довольно глубоко в структуре папок.

/ mnt / backup / backup / [yymmdd_hhmm / backup-clients / [username] /

выполняет sudo find /mnt/backup/backup/ -type d -name [username] | rm -r эту работу?

-1
задан 7 May 2018 в 04:15

3 ответа

Вы хотите использовать опцию найти в -exec, -exec rm -r {} +. В + в конце группы аргументов в больших партиях, что означает, что не будет отдельной rm процесс для каждого результата, но они будут сгруппированы в более крупные куски, что позволяет снизить загрузку процессора.

выполнить find без -exec, так что вы можете быстро убедиться в том, что аргументы, которые будут переданы на [F9] правильно:

find /mnt/backup/backup/ -name "[username]" -type d

если все выглядит хорошо, идем дальше:

find /mnt/backup/backup/ -name "[username]" -type d -exec rm -r {} +
2
ответ дан 17 July 2018 в 15:01

Вы хотите использовать опцию -exec для поиска -exec rm -r {} +. [F5] в конце группирует аргументы в более крупные партии, а это означает, что для каждого результата не будет отдельного процесса rm, но они будут сгруппированы в более крупные фрагменты, что приведет к снижению использования ЦП.

Сначала запустите find без -exec, чтобы вы могли быстро убедиться, что аргументы, которые будут переданы в rm -r, верны:

find /mnt/backup/backup/ -name "[username]" -type d

Если все выглядит нормально, вперед:

find /mnt/backup/backup/ -name "[username]" -type d -exec rm -r {} +
2
ответ дан 20 July 2018 в 15:28
  • 1
    звучит все логично, thx. Кажется, навсегда все-таки. это то, как это должно быть? например, я выполнял «слепую» команду (без части -exec) в течение часа или около того, и все еще она еще не закончена. Неужели find так медленно? – vrms 7 May 2018 в 15:49
  • 2
    Нет, не совсем, это должно быть довольно быстро. Я предполагаю, что ваше & quot; имя пользователя & quot; папка довольно частая, то результаты должны появляться в течение нескольких секунд даже на вращательных дисках. Вы можете увидеть процесс find, генерирующий IO-активность (вы можете проверить с помощью atop: start atop, нажать 1, чтобы он показывал агрегаты за секунду, d, чтобы видеть активность диска на процесс, и t, чтобы обновить представление)? – hydrandt 9 May 2018 в 12:25

Вы хотите использовать опцию -exec для поиска -exec rm -r {} +. [F5] в конце группирует аргументы в более крупные партии, а это означает, что для каждого результата не будет отдельного процесса rm, но они будут сгруппированы в более крупные фрагменты, что приведет к снижению использования ЦП.

Сначала запустите find без -exec, чтобы вы могли быстро убедиться, что аргументы, которые будут переданы в rm -r, верны:

find /mnt/backup/backup/ -name "[username]" -type d

Если все выглядит нормально, вперед:

find /mnt/backup/backup/ -name "[username]" -type d -exec rm -r {} +
2
ответ дан 23 July 2018 в 15:59
  • 1
    звучит все логично, thx. Кажется, навсегда все-таки. это то, как это должно быть? например, я выполнял «слепую» команду (без части -exec) в течение часа или около того, и все еще она еще не закончена. Неужели find так медленно? – vrms 7 May 2018 в 15:49
  • 2
    Нет, не совсем, это должно быть довольно быстро. Я предполагаю, что ваше & quot; имя пользователя & quot; папка довольно частая, то результаты должны появляться в течение нескольких секунд даже на вращательных дисках. Вы можете увидеть процесс find, генерирующий IO-активность (вы можете проверить с помощью atop: start atop, нажать 1, чтобы он показывал агрегаты за секунду, d, чтобы видеть активность диска на процесс, и t, чтобы обновить представление)? – hydrandt 9 May 2018 в 12:25

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

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