이미지로 가득 찬 디렉토리가 있습니다.
image0001.png
image0002.png
image0003.png
...
나는 그것들의 이름을 (예를 들어)로 바꾸는 농담을 원합니다.
0001.png
0002.png
0003.png
...
어떻게 해야 하나요?
답변1
데비안과 그 파생물에서는펄 rename
명령줄다음과 같이 작동합니다 sed
.
rename -v 's/image//' ./*.png
다음과 같은 내용도 있습니다 rename
.util-linux
rename -- image '' *.png
답변2
Bash 또는 기타 POSIX 호환 셸을 사용하는 경우:
for f in *.png; do
mv -- "$f" "${f#image}"
done
답변3
zsh 셸에는 이라는 강력한 일괄 이름 바꾸기 명령이 있습니다 zmv
.
zmv
먼저 다음 명령을 활성화해야 합니다 (이 명령은 에 들어갑니다 ~/.zshrc
).
autoload zmv
기본 구문은 입니다 zmv PATTERN REPLACEMENT
. 패턴은 쉘 glob 표현식입니다. 패턴의 특정 부분을 괄호로 묶을 수 있습니다. 대체 텍스트에는 패턴의 N번째 괄호 그룹을 참조하는 등이 $1
포함될 수 있습니다. $2
예를 들어:
zmv 'image(*.png)' '$1'
패턴의 와일드카드와 일치하도록 zsh 등을 자동으로 정의 $1
하도록 요청할 수도 있습니다 .$2
zmv -w 'image*.png' '$1.png'
답변4
qmv
이 명령은 탭으로 구분된 2열의 파일 이름 목록을 표시하는 편집기를 qmv
엽니다 . renameutils
두 열 모두에 동일한 파일 이름을 사용하여 행당 하나의 파일 이름을 표시합니다. 오른쪽 열은 파일의 새 이름을 나타냅니다.
변경하려면 오른쪽에서 이름을 수정하세요. 이 예에서는 :%s/...
시각적 차단 모드가 도움이 됩니다.
편집기의 파일 이름
$ qmv *.png
편집기에서:
image0001.png image0001.png
image0002.png image0002.png
image0003.png image0003.png
~
~
~
~
"/tmp/user/1000/qmvxWyVMs" 3L, 93C
오른쪽 열의 이름을 편집합니다. (시각적 블록 모드를 사용하여
모든 행에서 접두사를 제거합니다.)image
image0001.png 0001.png
image0002.png 0002.png
image0003.png 0003.png
~
~
~
~
:wq
로그 이름 바꾸기:
image0001.png -> 0001.png
image0002.png -> 0002.png
image0003.png -> 0003.png
(예: 우분투 apt-get install renameutils
:)