Когда вы используете rm -f folder / *. Png
или даже проще rm *
, то оболочка ( not rm) расширяет * до всех соответствующих файлов.Затем он вызовет rm со всеми расширенными именами файлов. (например, если будет выполнено `rm имя_файла1 имя_файла2 имя_файла3 имя_файла4 имя_файла5 имя_файла6 имя_файла7 .... имя_файла12345 '
Если этот список слишком длинный для передачи, вы получите эту ошибку.
Решение: разделите его на более мелкие части или не используйте оболочку. Например, можно найти с параметром --delete.
find / path / to / file -name "* .PNG" -delete \;
find / path / to / file -name "* .PNG" -exec rm \;
(запускает rm один раз для каждого файла) find / path / to / file -name "* .PNG" -delete +
(группирует их в куски просто достаточно мал, чтобы перейти к rm) Я обычно использую первый вариант. Сначала тестировался с -print.
Просто переберите здесь каждый файл (, пропуская точечные файлы по умолчанию ), и коснитесь соответствующего файла:
for f in *; do touch "${f}.done"; done