linux рекурсивно переименовывать имена файлов - PullRequest
0 голосов
/ 03 августа 2020

Мне нужно рекурсивно переименовать bash -sdl2-compile. sh в compile. sh
Попытки использовать 'переименовать' не удались, очевидно, функция безопасности не позволяет использовать слово «bash», т.е.

find ./ -name "bash-sdl2-compile.sh" -print0 | xargs -0 rename "bash-sdl2-compile.sh" "bash-sdl2-compile/compile"

сообщение об ошибке: «bash» не разрешено при использовании «строгих подпрограмм» в (код, предоставленный пользователем ). xargs: rename: завершено со статусом 255; прерывание

Как я могу рекурсивно переименовать linux файлы?

    dir1
       |_project1
                |_ bash-sdl2-compile.sh
    dir2
       |_project2
                |_ bash-sdl2-compile.sh
    dir3
       |_project3
                |_ bash-sdl2-compile.sh
  . . . 

Итак, переименуйте каждый «bash -sdl2-compile. sh», чтобы просто «скомпилировать» . sh "

1 Ответ

1 голос
/ 03 августа 2020

Нет необходимости использовать xargs, достаточно find:

find . -name bash-sdl2-compile.sh -execdir mv -i {} compile.sh ";"

(сделайте резервную копию всего вашего дерева перед тем, как попробовать это)

...