Создание пустых копий файлов с новыми расширениями

Когда вы используете 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.

1
06.01.2019, 23:44
1 ответ

Просто переберите здесь каждый файл (, пропуская точечные файлы по умолчанию ), и коснитесь соответствующего файла:

for f in *; do touch "${f}.done"; done
2
27.01.2020, 23:31

Теги

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