로컬에서 폴더 이동 연습하기

LinuxBeginner
지금 연습하기

소개

도서 보존팀이 Garden Atlas를 새 작업대로 옮기고 있습니다. 원본에는 비공개 초안과 임시 미리보기가 있고 수신 측에는 잃으면 안 되는 메모가 이미 있습니다. 오늘 판부터 개정판까지, 사용 가능한 자료 모음과 작업대 목록을 완성하는 것이 결과입니다.

기본적인 터미널 사용에 익숙해야 합니다. 이 독립 환경에는 두 로컬 폴더와 다음 판 스냅샷이 준비되어 있습니다. 방향, 끝 슬래시, 모의 실행, 필터와 정확한 삭제 범위를 배운 다음 다음 실습에서 같은 개념을 SSH로 적용합니다.

자료 모음의 경계 연습하기

이 단계에서는 두 가지 안전한 미리보기를 비교한 후 도서 자료를 수신 폴더로 복사합니다. 실습 내내 Terminal을 사용하세요. 여기서는 SSH가 필요하지 않습니다.

보존 작업대가 Garden Atlas를 옮기고 있습니다. old/collection에는 본문, 숨김 읽기 설정과 실행 가능한 읽기 도구가 있습니다. old/generated에는 폐기 가능한 작업대 목록이 있습니다. old/personal은 비공개입니다. 새 작업대에는 이미 receiver-note.txt가 있으며 수신팀 소유이므로 매번 갱신 후에도 남아야 합니다. revision/에는 나중에 쓸 다음 판이 있습니다.

cd는 디렉터리를 바꿉니다. ls -a는 숨김 항목도 포함하며 cat은 텍스트를 편집하지 않고 읽습니다. 먼저 수신팀의 메모를 보세요.

cd /home/labex/project/folder-move
ls -a old/collection
cat new/receiver-note.txt

메모 내용은 Received by Mira. Keep the west shelf clear.입니다. 작업대의 기존 목록은 불완전합니다. 대상은 의도적으로 비어 있지 않습니다.

rsync는 첫 경로에서 두 번째 경로로 복사합니다. -a는 아카이브 모드로 디렉터리를 재귀 복사하고 수정 시각, 실행 권한과 지원되는 다른 속성을 보존합니다. 일반 수신 계정은 임의의 원본 소유자를 유지할 수 없습니다. 이 과정은 바이트와 실행 권한을 확인하며 시스템 간 소유권, ACL이나 확장 속성을 보장하지 않습니다. -n은 파일을 변경하지 않는 모의 실행이고 -i는 변경 제안을 항목별로 나열합니다.

따옴표로 감싼 제외 규칙은 모든 깊이에서 이름이 .tmp로 끝나는 항목을 제외합니다. 따옴표는 rsync가 패턴을 받기 전에 셸이 이를 확장하지 못하게 합니다.

먼저 끝 슬래시 없이 원본 디렉터리 자체를 미리 보세요.

rsync -ani --exclude='*.tmp' old/collection new/collection/

대상 자료 디렉터리 안에 추가 collection/이 제안되는지 보세요. 이런 중첩은 읽기 도구를 잘못된 위치에 놓습니다.

이번에는 끝 슬래시를 붙여 원본 내용을 미리 보세요.

rsync -ani --exclude='*.tmp' old/collection/ new/collection/

이제 .bindery.conf, read-book, texts/를 포함한 경로가 new/collection/ 바로 아래에 놓입니다. rsync는 디렉터리 자체를 받으므로 점 파일도 포함합니다. old/collection/* 같은 셸 와일드카드는 숨김 항목을 빠뜨립니다. 새 일반 파일은 보통 >f+++++++++로 표시되고 다른 플래그는 속성 변경을 설명합니다. 모의 실행 줄은 계획이며 전달된 자료가 아닙니다.

n만 제거하여 선택한 전송을 실행하세요.

rsync -ai --exclude='*.tmp' old/collection/ new/collection/
new/collection/read-book

읽기 도구는 reading_order=catalog,treatment 다음에 Garden Atlas 목록과 종이 경첩 처리 방법을 표시합니다. 직접 실행하면 복사한 도구가 상대 본문 경로와 숨김 설정을 이용해 작동함을 알 수 있습니다. 실행이 거부되면 ls -l로 원본과 대상 모드를 확인하고 준비된 원본에서 아카이브 모드를 다시 실행하세요. 도구를 고정된 출력으로 바꾸지 마세요.

실수로 중첩 복사를 했다면 ls new/collection/collection으로 살펴본 후 rm -r new/collection/collection으로 그 중복만 삭제하세요. rm -r은 지정한 디렉터리와 내용을 영구 삭제합니다. 수신 메모도 들어 있는 new로 정리 경로를 줄이지 마세요. 그런 다음 올바른 전송을 다시 실행합니다.

메모를 지우지 않고 작업대 목록 전달하기

이 단계에서는 별도의 생성 목록을 복사해 첫 전달을 완료합니다. /home/labex/project/folder-move의 Terminal에 머무르세요.

자료 모음과 생성 파일은 관리 책임이 다릅니다. 원본은 generated/ 아래의 모든 파일을 관리하고 수신자는 루트 메모를 소유합니다. personal/까지 노출하는 old/ 전체 복사 대신 두 번째 관리 디렉터리만 선택하세요.

rsync -ani old/generated/ new/generated/
rsync -ai old/generated/ new/generated/
cat new/generated/current.txt
cat new/receiver-note.txt

목록은 Garden Atlas | desk edition 1을 표시합니다. 오래된 목록도 아직은 의도적으로 첫 번째 판의 일부입니다. 수신 메모는 바뀌지 않았습니다. 전달한 읽기 도구를 다시 실행하세요.

new/collection/read-book

지금까지 --delete는 필요하지 않았습니다. rsync는 기본적으로 대상에만 있는 파일을 유지합니다. 제외 규칙은 전송을 막지만 이미 대상에 있는 임시 파일을 삭제하지는 않습니다. 미리보기를 잘못 복사했다면 살펴본 후 rm new/collection/preview.tmp 같은 방법으로 정확한 불필요 파일만 지우고 필터 동기화를 다시 시도하세요. 검사를 통과하려고 수신 루트를 정리하면 안 됩니다.

관리 범위 안에서 다음 판 적용하기

이 단계에서는 두 번째 판을 전달하고 오래된 생성 목록만 폐기합니다. 같은 작업 공간의 Terminal에 머무르세요.

cat은 여러 파일 이름을 받아 그 순서대로 표시합니다. 편집 가능한 원본을 바꾸기 전에 제공된 다음 판을 읽으세요.

cat revision/collection/texts/catalog.txt revision/collection/texts/treatment.txt revision/collection/texts/addendum.txt

목록은 이제 48장이며 처리 방법은 리넨 경첩을 사용하고 새 보충 자료가 있습니다. cp -a는 파일 속성을 보존하면서 재귀적으로 복사합니다. revision/.는 숨김 파일을 포함한 모든 내용을 뜻합니다. 제공된 변경을 old/에 덮어쓰지만 개정판에 없는 항목을 삭제하지는 않습니다. 작업대가 old/generated/obsolete.txt를 명시적으로 폐기하므로 이 원본 파일만 삭제하세요. rm은 파일을 영구 삭제하므로 경로 범위를 넓히지 마세요.

cp -a revision/. old/
rm old/generated/obsolete.txt

보통 rsync는 크기와 수정 시각으로 데이터 변경을 판단합니다. -c는 파일 내용의 체크섬 비교를 추가합니다. 작은 파일이므로 비용이 적으며 같은 크기와 유지된 타임스탬프를 가진 변경도 감지합니다. 버전 이력이나 백업을 만들지는 않습니다. 자료 갱신을 미리 보고 적용하세요.

rsync -anci --exclude='*.tmp' old/collection/ new/collection/
rsync -aci --exclude='*.tmp' old/collection/ new/collection/

자료 미리보기에는 수정된 두 본문과 새 보충 자료가 나오고 임시 미리보기 파일은 없어야 합니다. 속성만 바뀐 항목도 나올 수 있습니다.

--delete는 원본에 없는 대상 항목을 선택한 동기화 디렉터리 안에서 삭제합니다. 여기서는 generated/만 완전한 관리 대상이며 수신 루트는 아닙니다. 폐기 작업을 미리 보고 *deleting obsolete.txt를 찾은 다음 정확히 같은 범위에 적용하세요.

rsync -anci --delete old/generated/ new/generated/
rsync -aci --delete old/generated/ new/generated/
cat new/generated/current.txt new/collection/texts/addendum.txt new/receiver-note.txt
new/collection/read-book

작업대 두 번째 판, 새 자료, 원래 수신 메모와 갱신된 읽기 도구 출력이 보여야 합니다. 루트 전체를 --delete로 미러링하면 메모가 지워질 수 있습니다. 이 관리 목록 하나를 폐기하는 데 사용하지 마세요.

같은 미리보기를 반복하세요.

rsync -anci --exclude='*.tmp' old/collection/ new/collection/
rsync -anci --delete old/generated/ new/generated/

남은 파일 변경이 없어야 합니다. 선언한 범위에서 반복은 안전하지만 나중에 원본이 삭제되면 어느 대상 디렉터리가 관리 대상인지 다시 명확히 판단해야 합니다. rsync만으로 원래 판을 복구할 수는 없습니다. 이력이 필요하면 별도 백업을 사용하세요.

요약

사용 가능한 자료 모음을 전달하고 숨김 설정과 읽기 도구의 권한, 수신 작업대의 메모를 보존했습니다. 두 번째 동기화에서는 관리 대상 파일을 갱신하고 선언한 범위 안에서만 폐기된 목록을 삭제했습니다. 동기화에는 방향이 있으며, 버전 이력이 있는 백업이나 충돌 병합 기능은 아닙니다.