쉘 스크립트에서 특정조건의 파일을 찾아 이동, 복사하기

2020. 6. 5. 10:31IT/S . e . v . e . r . I . n . f . r . a

첫번째 방법

먼저 mv, cp 커맨드의 Source부분을 검색결과로 매칭하는 방법이 있습니다.
특정 디렉토리안의 첫번째 계층에서 이름으로 매칭되는 파일 찾아 이동, 복사하기

mv $(find . -maxdepth 1 -name "*.bak") /복사할경로
cp -p $(find . -maxdepth 1 -name "*.bak") /복사할경로

특정 디렉토리안의 첫번째 계층의 파일 전체를 찾아 이동, 복사하기

mv $(find /test/files -maxdepth 1 -type f) /복사할경로
cp -p $(find /test/files -maxdepth 1 -type f) /복사할경로

두번째 방법

find 명령어의 옵션인 exec을 사용하여 매칭된 파일을 이동하거나 복사하는 방법이 있습니다.
특정 디렉토리안의 첫번째 계층에서 이름으로 매칭되는 파일 찾아 이동, 복사하기

find . -maxdepth 1 -name "*.bak" -exec cp -rp {} /복사할경로 \;
find . -maxdepth 1 -name "*.bak" -exec mv {} /복사할경로 \;

특정 디렉토리안의 첫번째 계층의 파일 전체를 찾아 이동, 복사하기

find /test/files -maxdepth 1 -type f -exec cp -rp {} /복사할경로 \;
find /test/files -maxdepth 1 -type f -exec mv {} /복사할경로 \;

추가로 exec과 비슷한 ok 옵션을 사용하는 경우도 있다.

find /test/files -maxdepth 1 -type f -ok cp -p {} /복사할경로 \;
find /test/files -maxdepth 1 -type f -ok mv {} /복사할경로 \;