티스토리 뷰

파일을 안전하게 옮기기


상황: /Volumes/HDD1/z 를 /Volumes/HDD2/z 로 옮기고싶다

이 과정은 macOS 를 기준으로 진행되었습니다


주의 사항

파일 관련작업은 언제나 신중해야한다

모든 명령과 행동에 대해 실행 전에 심사숙고해라

이 글은 이 과정을 진행하면서 당신이 경험하게 될 그 어떤 실수에 대해서 책임 지지않는다


1. 먼저 데이터의 모습을 기록해둔다

주의사항: 아래 명령은 디스크에 lsalR.hdd1.z.txt 라는 파일을 생성하게 된다. 혹시나 동일한 파일이 존재한다면 덮어써버리니 주의하자

cd /Volumes/HDD1/;

ls -alR z | grep -v '^d' | grep -v '\.DS_Store$' | grep -v '^total' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' > lsalR.hdd1.z.txt


2. 그리고 카피하라

주의사항: 카피할때 목적지에 동일이름이 있는지 주의하자

카피방법은 마음대로해라

cp -r /Volumes/HDD1/z /Volumes/HDD2/ 하던지..

그냥 GUI 환경에서 카피하던지


3. 카피완료후 HDD2 디스크를 언마운트후 다시 마운트 한다


4. 카피된 모습을기록

주의사항: 아래 명령은 디스크에 lsalR.hdd2.z.txt 라는 파일을 생성하게 된다. 혹시나 동일한 파일이 존재한다면 덮어써버리니 주의하자

cd /Volumes/HDD2/;

ls -alR z | grep -v '^d' | grep -v '\.DS_Store$' | grep -v '^total' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' | sed 's/  / /g' > lsalR.hdd2.z.txt;


5. 두개의 파일을 비교

WinMerge 같은거로 비교해라

비교해서 차이점이 없으면 OK이다

/Volumes/HDD1/lsalR.hdd1.z.txt

/Volumes/HDD2/lsalR.hdd2.z.txt


이런 귀찮은 과정을 거치는 이유

파일작업을 한 후, 언마운트 후 다시 마운트를 시켜보니, 작업했던 내용이 사라져있는걸 발견한적이 있었다.

당시 상황은 디스크는 exFat 이였고 사용했던 컴퓨터는 macOS Sierra였다.

무엇이 잘못된건지는 모르겠지만 어쨋든 자료를 날린셈이였다.

파일을 옮기려 할때, mv a b 해버린다면, 결국 사본없이 원본이 b 단독으로만 존재하는 상황이 나와버린다. 이때 b 가 문제가 생긴다면 자료를 날리는셈이다.

그래서 파일을 카피해서 a와 b 를 둘다 남긴 후, 충분한 검증을 통해 자료가 안전하다고 확인된 상황에서 a 를 날리는 것이다.


이 방법에서 조금 부족한 점

ls -alR 로는 파일사이즈까지는 알 수 있지만, 실제 파일의 내용을 알 수는 없다.

ab, ac 는 엄연히 다른데이터이지만 용량은 둘다 2, 2 이다 그래서 이 경우 같다고 판단한다.


댓글
댓글쓰기 폼
공지사항
Total
27,559
Today
4
Yesterday
40
링크
«   2018/07   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함