Linux에서 cp를 사용하여 디렉토리를 복사하지만 특정 하위 디렉토리를 무시하는 방법


9

하드 디스크 문제로 인해 파티션을 한 하드 디스크에서 다른 하드 디스크로 옮기려고합니다. http://www.ibm.com/developerworks/library/l-partplan.html 기사를 따르고 있습니다. 복사 부분에서 하나의 특정 하위 디렉토리를 무시하고 싶습니다. 복사 할 때 소유자 그룹과 타임 스탬프를 보존해야한다는 점을 명심하십시오. 특정 하위 디렉토리를 무시하지 않으면 복사해야 할 약 700GB의 데이터가 있습니다.

답변:


11

rsync -ax --exclude [relative path to directory to exclude] /path/from /path/to

사용하고 싶을 수도 --del있습니다. 매뉴얼 페이지를 확인하십시오.


그렇습니다. 이것은 작동합니다.
P Roy

2

일반적 cpio으로 다음과 같이 사용 합니다.

cd source_dir; find . -depth | cpio -pdmv dest_dir

그리고 이것이 파이프 라인이기 때문에 중간에 "빼기 필터"를 넣을 수 있습니다.

cd sourcedir; find . -depth | grep -v exclude_dir | cpio -pdmv dest_dir

또는 여러 단계로 나눌 수 있습니다.

cd source_dir; find . -depth > files.lst
gedit files.lst  # (take out the offending directory and files and save back to files.lst)
cpio -pdmv dest_dir < files.lst

물론 나는 이것을 작은 것부터 테스트하지만 아이디어를 얻습니다.



0

mv큰 하위 디렉토리를 다른 위치로 일시적으로 이동 ( )하고 복사 한 다음 하위 디렉토리를 복원 할 수 있습니까? cp이 작업을 수행 하는 직접적인 옵션을 볼 수 없습니다 .


나는 또한 cp를 사용하는 것을 무시할 방법이없는 man cp를 확인했다. 해당 하위 디렉토리에 550GB의 데이터가 있고 mv는 몇 시간이 걸릴 수 있습니다.
P Roy

mv는 상대적으로 저렴한 작업이라고 가정했습니다. 디스크에서 실제로 데이터를 옮기지 않고 데이터에 대한 참조를 업데이트합니다. 적어도 필자는 항상 Windows에서 사본이 복사보다 빠르다는 것을 발견했습니다. Linux 파일 시스템은 완전히 다르게 작동 할 수 있습니다.
애쉬

같은 하드 디스크에 mv가 빠릅니다. 그러나 hardisk에서 mv를 수행하면 cp와 같은 시간이 걸린다고 생각합니다.
P Roy

나는 그것을 하드 디스크에서 어딘가로 옮겨서 방해받지 않고 나머지를 원격 디스크에 복사 한 다음 큰 파일을 다시 옮겼습니다. /에서 전체 디스크를 복사하지 않는 한
Ash

0

오히려 못생긴 해결책이지만 ... 왜 디렉토리의 모든 것을 비 재귀 적으로 cp 한 다음 개별 디렉토리를 재귀 적으로 복사하지 않습니까?


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.