대문자로 시작하도록 여러 파일 이름 바꾸기

대문자로 시작하도록 여러 파일 이름 바꾸기

CodeIgniter 3을 사용하도록 웹사이트를 업데이트하려고 하는데 CodeIgniter 3.0부터 모든 클래스 파일 이름(라이브러리, 드라이버, 컨트롤러 및 모델)은 Ucfirst와 같은 방식으로 이름을 지정해야 합니다. 즉, 대문자로 시작해야 합니다. 편지.

예를 들어 다음 라이브러리 파일이 있는 경우:

application/libraries/mylibrary.php

... 그런 다음 이름을 다음과 같이 바꿔야 합니다.

application/libraries/Mylibrary.php

드라이버 라이브러리와 확장 및/또는 CodeIgniter 자체 라이브러리 및 핵심 클래스의 재정의에도 마찬가지입니다.

application/libraries/MY_email.php application/core/MY_log.php

위 파일의 이름은 각각 다음과 같이 변경되어야 합니다.

application/libraries/MY_Email.php application/core/MY_Log.php

컨트롤러:

application/controllers/welcome.php -> application/controllers/Welcome.php

모델:

application/models/misc_model.php -> application/models/Misc_model.php

명령줄로 어떻게 할 수 있나요?

감사해요 ,

답변1

Bash 4를 사용하면 먼저 추가 globbing 옵션을 활성화합니다.

shopt -s extglob

이제 이름을 바꾸려는 PHP 파일이 포함된 폴더에서만 이를 호출해야 합니다. 재귀적으로 파일을 찾습니다 .php.

for f in **/*.php; do 
  fn=$(basename "$f") # remove directory name
  Fn=${fn^}           # uppercase first letter
  echo mv -- "$f" "$(dirname "$f")/$Fn"  # combine both
done

파일 의 경우 MY_또 다른 실행이 필요할 수 있습니다.

for f in **/MY_*.php; do
  fn=$(basename "$f")
  Fn=${fn#MY_}     # remove MY_ from filename
  Fn="MY_${Fn^}"   # uppercase first letter and add MY_ again
  echo mv -- "$f" "$(dirname "$f")/$Fn"
done

echo이름 바꾸기를 수행하려면 이 스크립트에서 를 제거하세요 .

답변2

라는 작은 유틸리티를 사용하십시오 mmv. 다음과 같이 첫 글자를 대문자로 만들 수 있습니다.

mmv "[a-z]*\.*" "#u1#2.#3"

그리고 두 번째 경우( )에 대해서는 MY_log.php다음과 같이 해결할 수 있습니다.

mmv "*_[a-z]*.php" "#1_#u2#3.php" 

또는:

mmv "*_[a-z]*" "#1_#u2#3"

관련 정보