Найдите и удалите все но самые большие файлы N в 100 с каталогов

Рекурсивно присвоение на www-данные как владелец материала, не только главная папка. Это должно сделать

2
задан 10 August 2011 в 21:49
1 ответ

Попытайтесь выполнить эту команду, я думаю, что Вам понравится она

find /path/to/dir -type f -print0 | xargs -0 du -s | sort -rn | awk 'NR>5 {print $NF}' | xargs rm -f

Это распечатает все файлы под /path/to/dir каталог, вычислите размер каждого файла, вида размером, извлеките названия всех (кроме лучших 5) файлы и передача это к rm.

Для выполнения этого на каждом каталоге индивидуально Вы - более обеспеченное обертывание его в сценарии, как

#!/bin/bash

for DIR in `find /path -maxdepth 1 -type d`
do
    find ${DIR} -type f -print0 | xargs -0 du -s | sort -rn | awk 'NR>5 {print $NF}' | xargs rm -f
done

Где /path родительский каталог, который содержит все Ваши одноуровневые каталоги. Это выполнит то же самое, которое @TomNewton описывает путем отдельного выполнения рабочего процесса на каждом одноуровневом каталоге.

4
ответ дан 3 December 2019 в 10:16

Теги

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