Как удалить большое количество файлов в Linux/FreeBSD?

Как удалить большое количество файлов в Linux/FreeBSD?

Если вам нужно найти и удалить большое количество файлов в Linux или FreeBSD, можно воспользоваться командой find с параметрами.

Как удалить все файлы, при этом сохранить структуру каталогов (папки не удалять)?

# find /data/files/ -type f -exec rm {} \;

Ключ -type f отвечает за удаление только файлов (f), может принимать значение d (directory).

Указанный выше способ не годится, если файлов тысячи и сотни тысяч. Когда используется ключ -exec, для каждого найденного файла создается отдельный процесс для выполнения команды – параметра ключа -exec. Воспользуемся другим способом:

# find /data/files/ -type f | xargs rm

Третий способ удалить все файлы, сохраняя каталоги:

# find /data/files/ -type f -delete

Команда find в Linux/FreeBSD. Синтаксис команды find.

Команда find в Linux/FreeBSD. Синтаксис команды find.

Синтаксис команды find:

# find [путь] [опции] [параметры поиска] [действия над файлами]

Путь - где искать файлы, можно использовать список путей через пробел.

Опции - начиная с символа «-», после идет название опции:
-d                    Поиск в подкаталогах перед поиском в самом каталоге
-L                    При поиске следовать по символическим ссылкам
-maxdepth N   При поиске проверять не более чем N вложенных уровней каталогов
-mindepth N    Не проверять вложенные каталоги уровня N и меньше
-mount            Не искать в каталогах других файловых систем
Читать далее

Как сменить права доступа к папкам или файлам. Смена владельца

Как сменить права доступа к папкам и файлам одновременно?

# chmod -R 775 /usr/share/www/

На все подкатегории и файлы директории /usr/share/www/ будут установлены права 775

Как изменить владельца у файлов и папок?

# chown -R root:root /usr/share/www/

Как изменить права доступа только файлам?

# find /usr/share/www/ -type f -exec chmod 644 {} \;

Как изменить права доступа только папкам?

# find /usr/share/www/ -type d -exec chmod 755 {} \;

Как изменить владельца только для файлов?

# find /usr/share/www/ -type f -exec chown user:group {} \;

Как изменить владельца только для папок?

# find /usr/share/www/ -type d -exec chown www:www {} \;