@junior_www

Как почистить папку с 246к папок по ssh?

Добрый день! Папка bitrix/cache стала очень большой. в ней более 246000 папок. (большая часть вида iblock_find.~xxxxxx)
Пробовал, находясь под ssh в этой папке удалить так rm -rf *
но не выходит, получаю ошибку: -bash: /usr/bin/nice: Argument list too long

Подскажите, пожалуйста, как ее почистить
  • Вопрос задан
  • 352 просмотра
Решения вопроса 1
Так снеси просто bitrix/cache:
rm -rf bitrix/cache
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
shurshur
@shurshur
Сисадмин, просто сисадмин...
Можно использовать xargs, он сам поделит список аргументов, переданных через stdin, на такие блоки, чтобы они вписывались в лимит. Чтобы не было спецэффектов от всяких особых символов, можно использовать find -print0 | xargs -0 (символ с кодом 0 будет разделять имена файлов вместо стандартного переноса строки):

find условия -print0|xargs -0 rm -rf

Однако GNU find сам умеет удалять файлы с помощью -delete:

find условия -delete

Ещё может быть проблема, что подобная операция помешает работе сайтов из-за нагрузки на диск, это можно решить с помощью приоритетов для процессов (nice) и ввода-вывода (ionice), тогда удаление будет по возможности выполняться в фоне:

nice -n19 ionice -c3 команда

(Если используется find|xargs, то это нужно передать xargs)
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну всё правильно, консоль переводит * в реальный список файлов. Должно сработать так: rm -rf '*'
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега SSH
software engineer
wildcard преобразуется в список файлов, который не влазит в командную строку, поэтому

1. попробуй удалять частями, например
rm  -rf iblock_find.~1*
rm  -rf iblock_find.~2*
rm  -rf iblock_find.~3*


2. воспользуйся find - зайди в папку и выполни
find . -delete
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Вот тут пишут похожее https://haydenjames.io/bash-usr-bin-rm-argument-li...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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