같은 이름 이지 만 다른 접미사 파일 의 셸 스 크 립 트 코드 를 찾 습 니 다.

백 엔 드 에 입력 한 동료 때문에 파일 을 업로드 할 때 파일 에 같은 이름 을 지 었 지만 서로 다른 접미사 이름 은 파일 경로 가 매우 깊 고 약 10 층 정도 이 며 한 층 에 몇 십 개의 파일 이 있 기 때문에 인공 적 으로 찾 는 것 이 매우 번 거 로 웠 습 니 다.그래서 스 크 립 트 를 써 서 지정 한 디 렉 터 리 아래 의 모든 하위 디 렉 터 리 와 파일 을 찾 아 같은 파일 이름 을 찾 아 주 었 습 니 다.서로 다른 접미사 의 파일 을 수 동 으로 보관 합 니 다

#!/bin/bash 
#  
if [ $# -ne 1 ];then 
   echo "Usage find_same.sh direcroty" 
   exit 
fi 
find $1 -type d > /tmp/dir.txt 
#  
#  
while read dir 
do 
     find $dir -maxdepth 1 -type f > /tmp/file.txt 
     #  
     awk -F '/' '{print $NF}' /tmp/file.txt | awk -F '[.]' '{print $1}'| sort | uniq -d > /tmp/filename.txt 
     # , /tmp/filename.txt  
     line=`wc -l /tmp/filename.txt | awk '{print $1}'` 
     # ,  
     #  
     echo "The directory $dir including same name file: " 
     if [ $line -ge 1 ] ; then 
        while read name 
        do 
        filename=`grep $name /tmp/file.txt` 
                echo "$filename" 
                echo $filename >> /tmp/samefile.txt 
                #  
        done < /tmp/filename.txt 
      fi 
done < /tmp/dir.txt
아 날로 그 테스트:
linux-8hij:/tmp/test # lltotal 4-rw-r--r-- 1 root root    0 Mar  9 02:04 1.png-rw-r--r-- 1 root root    0 Mar  9 02:04 1.txtdrwxr-xr-x 2 root root 4096 Mar  9 02:05 test1linux-8hij:/tmp/test/test1 # lltotal 0-rw-r--r-- 1 root root 0 Mar  9 02:05 11.jpg-rw-r--r-- 1 root root 0 Mar  9 02:05 11.log-rw-r--r-- 1 root root 0 Mar  9 02:05 2.log
실행 결과:
linux-8hij:/tmp # ./find_name.sh /tmpThe directory /tmp including same name file: The directory /tmp/.ICE-unix including same name file: The directory /tmp/.X11-unix including same name file: The directory /tmp/gconfd-root including same name file: The directory /tmp/gconfd-root/lock including same name file: The directory /tmp/gpg-PIEU09 including same name file: The directory /tmp/test including same name file: /tmp/test/1.txt/tmp/test/1.pngThe directory /tmp/test/test1 including same name file: /tmp/test/test1/11.jpg/tmp/test/test1/11.log
기록 보기:
linux-8hij:/tmp # cat /tmp/samefile.txt /tmp/test/1.txt /tmp/test/1.png/tmp/test/test1/11.jpg /tmp/test/test1/11.log
이 스 크 립 트 를 통 해 같은 이름 이지 만 다른 접미사 이름 을 찾 을 수 있 습 니 다.지정 한 파일 을 삭제 하 는 스 크 립 트 로 확장 할 수 있 습 니 다.실 용적 이 라 고 생각 합 니 다.공유 하 세 요.

좋은 웹페이지 즐겨찾기