scp -r… 그러나 지정된 서브 디렉토리를 제외 (제외) a / c /

디렉토리 구조는 다음과 같습니다.

/a/
/a/b/
/a/c/

/ a / c / 하위 디렉토리를 제외하고 모든 것을 복사하고 싶습니다.

scp -rp myserver:/a .      # this will copy everything

Q : scp 명령에서 제외 할 디렉토리를 어떻게 지정합니까?



답변

나는 당신이 할 수 있다고 생각하지 않지만 rsync를 사용할 수 있습니까? 이 같은:

rsync -a --exclude=a/c myserver:/a .


답변

나는 이것이 SSH를 사용하는 올바른 방법 일 것이라고 생각하지만 scp로 그것을 수행하는 방법을 찾지 못했지만 ssh를 통해 rsync를 사용하면 해결할 수 있습니다.

rsync -e 'ssh -ax' -av --exclude /a/c myserver:/a .

-n 스위치를 사용하면 프로세스가 완전히 실행됩니다.

 rsync -e 'ssh -ax' -av --exclude /a/c -n myserver:/a .


답변

아래 예와 같이 확장 글 로빙을 사용할 수 있습니다.

#Enable extglob
shopt -s extglob

cp -rv !(./excludeme/*.jpg) /var/destination


답변

완벽한 방법은 아니지만 제외하려는 하위 디렉토리를 읽기 전용으로 설정하십시오. chmod -R 444 /a/c트릭을해야합니다. 해당 디렉토리를 덮어 쓰려고하면 “permission denied”오류가 발생합니다.


답변