숨겨진 디렉터리를 제외하고 재귀적으로 복사

숨겨진 디렉터리를 제외하고 재귀적으로 복사

동일 cp -rf *하지만 숨겨진 디렉터리( . 로 시작하는 디렉터리)와 그 내용을 제외하고 반복적으로 복사하려면 어떻게 해야 합니까?

답변1

특정 파일을 제외하고 디렉토리 트리를 복사하는 데 적합한 옵션은 다음과 같습니다.

  • 동기화: 이것은 기본적으로 cp에 많은 제외 가능성이 더해진 것입니다.

    rsync -a --exclude='.*' /source/ /destination
    
  • 공원: 몇 가지 제외 사항이 있고 POSIX에 있으므로 어디에서나 사용할 수 있습니다(일부 Linux 배포판에서는 어떤 이유로든 기본 설치에 포함하지 않습니다).

    cd /source && mkdir -p /destination && \
    pax -rw -pp -s '!.*/\..*!!'  . /destination
    

답변2

또는 를 사용할 cp수 있습니다 .rsync--exclude=PATTERN

답변3

모든 것을 복사할 수 있습니다.

cp -rf 

그런 다음 대상의 숨겨진 디렉토리를 삭제하십시오.

find -type d -name '.*' -and -not -name '.' -print0 | xargs -0 rm -rf

또는 고급 tar(예: GNU tar)가 있는 경우 tar를 사용하여 특정 패턴을 제외할 수 있습니다. 하지만 숨겨진 디렉터리만 제외하고 숨겨진 파일을 포함하는 것은 불가능합니다.

예를 들어 다음과 같습니다.

tar --exclude=PATTERN -f - -c * | tar -C destination -f - -x

그런데 GNU tar에는 다양한 제외 스타일 옵션이 있습니다. 내가 가장 좋아하는 것은

--exclude-vcs

관련 정보