mac -shell 에서 파일명 일괄 변경
사자_mac_20200912_11.pdf
다람쥐_mac_20200912_21.pdf
코끼리_mac_20200912_32.pdf
이구아나_mac_20200912_09.pdf
.
.
이런 파일명을 아래처럼 바꾸고 싶다.
한번에!
사자.pdf
다람쥐.pdf
코끼리.pdf
이구아나.pdf
.
.
따로 프로그램 사용하지 않고
shell로만 할 수 있지 않을까?
할 수 있다!
파일 이동 또는 파일명 변경할 때 사용하는 mv
를 업그레이드한(?)
zmv
를 사용한다.
zmv 내장함수는 패턴을 기반으로 동작한다.
zmv load
zmv를 사용하려면 먼저 로드를 해줘야 한다.
autoload zmv
를 입력한다.
위 command를 .zshrc
파일에 추가하면
zsh 시작할때 함수를 로드해서 세션에서 바로 사용할 수 있다.
이제 zmv
를 입력하면 아래와 같이 간단한 설명이 출력된다.
사용법
zmv [OPTIONS] oldpattern newpattern
으로 사용할 수 있다고 친절하게 알려준다.
옵션
옵션은 다음과 같다.
-f
: Force overwriting of destination files
-i
: Interactive prompt for each operation
-n
: No execution, just print what happens
-v
: Verbose—print a line as it is executed
-w
: Implicitly add parenthesis to wildcards in the pattern
-W
: Like -w, but turn wildcards in replacement patterns into references
확장자 변경
폴더내 html 파일을 md 파일로 변경하려고 한다.
와일드카드(*
)를 패턴으로 대체하기 위해 -W
옵션을 사용한다.
-v
옵션도 함께 사용하면 어떻게 동작하는지 알려준다.
zmv -W '*.html' '*.md'
정규식 패턴 변경
이번엔 처음 하고자했던 파일명 변경이다.
zmv는 패턴을 기반으로 동작한다고 했다.
zmv [OPTIONS] oldpattern newpattern
oldpattern에서 원하는 부분을 ()
에 담아두고
newpattern에서 ${1}
처럼 그룹 순서에 맞게 불러와서 적용할 수 있다.
zmv '(*)_mac_20200912_*.pdf' '${1}.pdf'
은
_mac_202000912
앞에있는 이름을 그룹으로 묶어서
새로운 파일명 ${1} 에서 사용하겠다는 뜻이다.
옵션 사용
옵션중 -n
을 사용하면 실행은 되지 않고
어떤 파일들이 어떻게 변경될 것인지 먼저 확인해볼 수 있다.
이걸로 먼저 어떤 파일들이 어떻게 적용되는 지 확인하고
바꾸면 안전하게 변경이 가능하다.
참고
Author And Source
이 문제에 관하여(mac -shell 에서 파일명 일괄 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rimo09/mac-shell-에서-파일명-일괄-변경저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)