동일한 확장자와 이름을 가진 모든 파일의 이름을 바꿉니다.

동일한 확장자와 이름을 가진 모든 파일의 이름을 바꿉니다.

확장자를 가진 모든 파일의 이름을 바꿔야 .js하지만 파일 이름이 다를 수 있습니다. 예를 들면 다음과 같습니다.

rootDirectory
--firstDirectory
----first.js
--secondFileDirectory
----second.js
--thirdDirectory
----third.js

다음으로 이름을 바꿔야 합니다.

rootDirectory
--firstDirectory
----newName.js
--secondFileDirectory
----newName.js
--thirdDirectory
----newName.js

그것을 할 수 있는 방법이 있나요?

우분투 14.04를 사용하고 있습니다

답변1

findUbubtu 14에는 이 옵션이 있는 버전이 있으므로 -execdir비교적 간단해집니다.

find . -name '*.js' -execdir mv -i {} newName.js \;

예를 들어 다음과 같은 트리가 있습니다.

./A
./A/first.js
./B
./B/second.js

나는 명령을 실행한다

$ find . -name '*.js' -execdir mv -i {} newName.js \;

결과 트리는 다음과 같습니다.

./A
./A/newName.js
./B
./B/newName.js

답변2

Perl 기반 rename, pwdrootDirectory 가정:

rename 's|(.*/).*\.js|$1newName.js|' */*

또는

rename 's|.*/\K.*\.js|newName.js|' */*
  • rename -n이름 바꾸기가 어떻게 진행되는지 확인하려면 다음을 사용하십시오.

관련 정보