IT

모든 파일의 이름을 소문자로 바꾸려면 어떻게합니까?

lottoking 2020. 8. 4. 22:46
반응형

모든 파일의 이름을 소문자로 바꾸려면 어떻게합니까?


예를 들어 TREE.wav, ONE.WAV가 있습니다. tree.wav, one.wav로 이름을 바꾸고 싶습니다. 모든 파일의 이름을 소문자로 바꾸려면 어떻게합니까?


터미널에 익숙하다면 :

  1. Terminal.app를 cd이름을 바꾼 파일이 들어있는 폴더를 창에 끌어다.
  2. 올바른 위치에 있는지 확인하려는 ls입력을 입력하고 누르십시오.
  3. 키를 누르십시오.

    for f in *; do mv "$f" "$f.tmp"; mv "$f.tmp" "`echo $f | tr "[:upper:]" "[:lower:]"`"; done
    
  4. 모든 파일이 소문자인지 확인 후 키 ls를 다시 입력하십시오.

(대부분의 수정 사항은 트위터에서 @bavarious에게 감사하며, 대소 문자를 구분하지 않는 파일 시스템에서이를 더하지 않는 해준 John Whitley에게 감사드립니다.)


일반적인 질문은 일반적으로 제공됩니다.

가장 간단한 경우 (대부분 안전하고 Mac OS X에서는 안전하지만 읽을 수 있음) :

for i in * ; do j=$(tr '[:upper:]' '[:lower:]' <<< "$i") ; mv "$i" "$j" ; done

파일 이름의 공백도 처리해야합니다 (모든 OS).

IFS=$'\n' ; for i in * ; do j=$(tr '[:upper:]' '[:lower:]' <<< "$i") ; mv "$i" "$j" ; done

(예 : Linux) 대소 문자를 구분하는 파일 시스템에서 대소 문자 만 다른 파일 이름을 안전하게 처리하고 대상을 작성합니다.

for i in * ; do j=$(tr '[:upper:]' '[:lower:]' <<< "$i") ; [ -e "$j" ] && continue ; mv "$i" "$j" ; done 

Mac OS X에 대한 참고 사항 :

Mac의 파일 시스템은 대소 문자를 구분하지 않습니다.

그러나 허용되는 의견과 의견 제안한 제안한 제안은 없습니다. 대소 문자 만 다른 두 개의 파일 이름이 처음에는 존재하지 않습니다 . ( ref) .

보여주기 위해 :

$ mkdir test
$ cd test
$ touch X x
$ ls -l 
total 0
-rw-r--r--  1 alexharvey  wheel  0 26 Sep 20:20 X
$ mv X x
$ ls -l 
total 0
-rw-r--r--  1 alexharvey  wheel  0 26 Sep 20:20 x

참고 URL : https://stackoverflow.com/questions/7787029/how-do-i-rename-all-files-to-lowercase

반응형