특정 확장자가 없는 모든 파일을 다른 디렉토리에 복사하는 방법은 무엇입니까?

특정 확장자가 없는 모든 파일을 다른 디렉토리에 복사하는 방법은 무엇입니까?

두 개의 디렉토리가 있고 확장자가 .인 파일을 제외한 dir1모든 파일 dir2과 폴더를 복사하고 싶습니다 . 어떻게 해야 하나요?dir1dir2.txt

답변1

rsync옵션과 함께 사용됩니다 --exclude.

rsync -av --exclude '*.txt' dir1/ dir2/

답변2

POSIX적으로:

cd dir1 && LC_ALL=C pax -rwpe -'s|.*\.txt||' . ../dir2

적어도 구현에서http://www.mirbsd.org/pax.htm(예: MirBSD 또는 Debian pax의 패키지에 있는 항목 ) .txt기호 링크 이름 자체가 로 끝나지 않더라도 대상이 로 끝나는 기호 링크도 제외됩니다 .txt.

또 다른 차이점은 rsync제외 되지만목차이름이 로 끝나는 .txt이러한 디렉터리의 txt가 아닌 파일은 제외되지 않습니다 . 를 추가하면 -s'|.*\.txt/.*||'이러한 항목도 제외됩니다.

-pe가능한 한 많은 메타데이터를 보존하십시오. 메타데이터 목록은 구현에 따라 다릅니다 pax. ( ) 옵션을 사용하여 유지할 내용을 선택하세요 rsync.-a-rlptgoD-AXUHN

관련 정보