셸 명령 압축 풀기 zip 폴 더 및 압축 풀기 파일 이름 바 꾸 기 (대량)

1214 단어 Linux
최근 제3자 시스템 에 미들웨어 를 만 들 려 면 서버 에 있 는 N 개의 ZIP 파일 에 대한 압축 해제 와 이름 바 꾸 기 처리 가 필요 하기 때문에 많은 노력 을 기울 인 후에 다음 과 같은 스 크 립 트 를 작성 하여 똑 같이 필요 한 사람들 을 도 울 수 있 기 를 바 랍 니 다!
  먼저 디 렉 터 리 구 조 를 말 해 보 세 요./home/test 폴 더 에 N 개의 폴 더 가 있 습 니 다. 예 를 들 어 2019.1 2019.2 2019.3 등 이 있 고 모든 폴 더 에 N 개의 ZIP 파일 이 있 습 니 다. 예 를 들 어
a.txt.zip   b.doc.zip  c.html.zip   d. pdf. zip 등. 모든 zip 파일 에 존재 하 는 이름 이 같 고 접미사 가 없 기 때문에 테스트 입 니 다. 따라서 압축 을 푼 파일 의 이름 을 바 꿔 야 합 니 다. 그렇지 않 으 면 파일 이 되 고 덮어 씁 니 다.
   문제 설명 을 마치 고 쓴 코드 를 보 여 드 리 겠 습 니 다. 서버 에서 실 행 된 후에 효과 가 예상 한 것 과 같 습 니 다!
 
#!/bin/sh
#============ unzip the file ===========
Folder="/home/test"
for file in ${Folder}/*;
do
    file_name=`basename $file`
    cd ${Folder}/$file_name
    (
        for unzip in ${Folder}/$file_name/*.zip;
        do
                unzip_name=`basename $unzip`
                rname=${unzip_name:0:${#unzip_name}-4}
                unzip -o -O gbk  $unzip_name && mv `unzip -l $unzip_name | awk '{if(NR == 4){ print $4}}'` $rname
                # rm -f $unzip_name      
        done
    )
done

 마지막 으로 필요 한 사람들 을 도 울 수 있 기 를 진심으로 바 랍 니 다. 정 위 는 이 글 을 써 서 많은 시간 을 낭 비 했 습 니 다.

좋은 웹페이지 즐겨찾기