, вероятно, самое простое решение, так как вы используете Баш, чтобы пройти по списку файлов с for
цикла:
$ for i in *; do rename -n 's/Name1_/Name2_/' $i; done
вы можете фильтрую файлы, если необходимо, используя любой шаблон в команде, например *.log
.
Есть другие, более замысловатые способы достижения этой цели, особенно если вам нужно сделать определенную строку манипуляции с именем файла, то есть с помощью awk
или find -exec
, но, надеюсь, это может помочь вам разобраться в ясной форме.
Отредактированный ответ как это было предложено @glglgl
более полное и подробное объяснение выше, можно найти на суперпользователя: https://superuser.com/questions/31464/looping-through-ls-results-in-bash-shell-script
Это происходит потому, что у вас так много файлов расширенных с '* .log шаблон. Может быть, вы можете использовать 'find' или' while' loop – fedorqui