파일 시스템이 있습니다: /foo
다른 파일 시스템이 있습니다: /bar
묻다:/foo의 모든 파일을 /bar로 복사하는 방법은 무엇입니까?
압축할 공간이 없어 복사만 가능합니다. 그러나 파일 시스템에 기호 링크와 하드 링크가 있을 수 있습니다. 따라서 소유자, 권한, 구조, 숨겨진 파일은 물론 이러한 파일도 저장해야 합니다! 가장 좋은 접근 방식은 무엇입니까?
추가: 이상한 문자가 포함된 파일 또는 블록/문자 파일
고쳐 쓰다: gzip을 사용할 수 있나요? 압축은 네트워크를 통해 복사해야 하는 경우 유용합니다.
답변1
루이의 코멘트거의 충분합니다. 숨겨진 파일을 포함하여 모든 것을 복사해야 합니다.
cd /foo; tar cpf - . | (cd /bar; tar xpvf -)
(다음으로 실행 root
).
두 프로세스 간에 복사된 데이터를 압축하려면 tar
파이프라인에 압축기와 압축 해제기를 추가할 수 있습니다.
cd /foo; tar cpf - . | gzip -9 | (cd /bar; gunzip | tar xpvf -)
귀하의 버전이 tar
이를 지원하는 경우 다음 플래그를 사용할 수 있습니다 z
.
cd /foo; tar cpzf - . | (cd /bar; tar xpzvf -)
(이 -p
플래그는 일부 플랫폼에서 기본적으로 활성화되어 있지만 root
AIX에 대해서는 잘 모르겠습니다.)
답변2
Tar는 매우 일반적이지만 inode 데이터와 관련된 많은 잠재적인 문제를 이해하지 못합니다. 변형을 적극 권장합니다.
cd $src; find . | backup -if - | (cd $target; restore -xqf -)
나는 몇 년 전에 이것을 "좋은 스크립트"로 작성했지만 대부분 명령줄에서 위의 내용을 사용합니다.
멋진 스크립트(2009년부터! 아야!)를 보려면 다음을 참조하세요.http://www.rootvg.net/content/view/301/309/