태그 보관물: file

file

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

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



답변

터미널에 익숙한 경우 :

  1. Terminal.app을 열고 cd이름을 바꿀 파일이있는 폴더를 입력 한 다음 끌어서 창에 놓습니다.
  2. 올바른 디렉토리에 있는지 확인하려면 입력 ls하고 Enter 키를 누르십시오.
  3. 이 코드를 붙여넣고 Enter를 누르십시오.

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

(몇 가지 수정 사항에 대해 트위터의 @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의 파일 시스템은 대소 문자를 구분하지 않고 대소 문자를 유지합니다.

허용 대답 및 의견 제안의 경우 만 다른 두 개의 파일 이름이 처음부터 존재하지 수 있기 때문에, 그러나, 필요, 임시 파일이 생성되지 것입니다 심판 .

이를 표시하려면 :

$ 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