Bash 스크립트에서 여러 파일의 이름을 바꾸는 방법은 무엇입니까? [폐쇄]

Bash 스크립트에서 여러 파일의 이름을 바꾸는 방법은 무엇입니까? [폐쇄]

동일한 디렉토리에 있는 3개의 파일 이름을 바꾸고 싶다고 가정해 보겠습니다. 예: test1.gzip test2.gzip test3.gzip

이제 위의 모든 파일 이름을 다음으로 바꾸고 싶습니다.

테스트 1_20180518.gzip 테스트 2_20180518.gzip 테스트 3_20180518.gzip

지금 결과를 어떻게 얻을 수 있나요? 누군가 도와주세요! !

bash 스크립트에서 이 작업을 수행하는 방법을 알려주십시오.

답변1

"이름이 변경된" 버전을 확인하세요 rename -V. 네가 본다면:

  • " util-linux" 그 다음에

    rename .gzip _$(date "+%Y%m%d").gzip *.gzip
    
  • " File::Rename" 그 다음에

    rename 'chomp(my $date = `date "+%Y%m%d"`); s/\.gzip/_$date.gzip/' *.gzip
    

답변2

가능한 해결 방법(루프 본문에서 하나를 선택해야 함):

#!/bin/bash

pattern="pattern"
i=0

for file in `find <your_path> -type f -name '*.zip'`
do
    extension="${file##*.}"
    filename="${file%.*}"

    # without extenstion
    mv "$file" "$filename-$pattern.$extension"

    # whole filename
    mv "$file" "$pattern-$i"
    i=$((i + 1))
done

관련 정보