폴더/하위 폴더에서 .txt, .csv 파일을 찾고, 다른 경로에 소스 경로 폴더를 다시 만들고, 파일을 복사하는 셸 스크립트

폴더/하위 폴더에서 .txt, .csv 파일을 찾고, 다른 경로에 소스 경로 폴더를 다시 만들고, 파일을 복사하는 셸 스크립트

찾을 쉘 스크립트를 찾고 있습니다.".txt", ".csv"여러 재귀 폴더/하위 폴더의 파일을 복사하고 동일한 폴더 경로를 다시 만들어 이러한 파일을 새 경로에 복사합니다.

예: 많은 상위 폴더와 하위 폴더에 약 20,000개의 파일이 저장되어 있습니다.

출처: u01/temp/proj/sales/john/.csv, .xls 파일
u01/temp/proj/sales/mike/.txt, .csv, .xls 파일
u01/temp/proj/sales/geebee/sale/.csv, .xls 파일

복사하려면 쉘 스크립트가 필요합니다.".txt", ".csv"만파일(xls 및 기타 파일 제외)을 복사하고 동일한 폴더 경로를 다시 만든 다음 아래와 같이 위 파일을 복사합니다.

u01/perm/프로젝트/판매/존/.csv파일
u01/perm/proj/sales/mike/.txt, .csv파일
u01/perm/proj/sales/geebee/sale/.csv문서

감사해요.

답변1

이를 위해 rsync를 사용할 수 있습니다. 소스 디렉터리에서 .txt 및 .csv 파일만 원하는 경우 해당 파일과 관련 디렉터리 구조만 대상에 복사할 수 있습니다.

예를 들어:

rsync -av --include="*/" --include="*.csv" --include="*.txt"  --exclude="*" u01/temp/ u01/perm/

반대 작업을 수행하고 ".json" 및 ".xlsx"를 제외한 모든 파일을 복사하는 등의 작업을 수행하려면 다음과 같이 명령 호출에서 "--exclude"를 사용할 수 있습니다.
rsync -avz --exclude="*.json" --exclude="*.xls" --exclude="*.xlsx" u01/temp/ u01/perm/

관련 정보