cp — 신중하게 복사
cp source dest 가 파일 하나 복사. 자주 쓰는 flag:
-r— 재귀 (디렉터리용)-i— interactive, 덮어쓰기 전 질문-n— 덮어쓰기 안 함 (조용히 skip)-v— verbose, 복사하는 파일마다 표시-p— 권한 / 소유자 / mtime 보존-a(GNU) — archive:-rp+ symlink 등
마지막 슬래시 중요해. cp foo/ bar 는 foo 의 내용 을 bar 로 (bar 존재 시). 슬래시 없으면 cp foo bar 는 자식으로 넣거나 이름 바꿈. 처음엔 throwaway 디렉터리에서 테스트.
mv — 이동 / 이름 변경
mv 는 같은 파일 시스템 안에서는 rename 과 동일 동작 — inode 만 relink. 파일 시스템 넘어가면 복사 후 삭제, 느리고 atomic 도 아냐.
cp 의 -i, -n, -v 는 mv 에서도 유효. -r 은 없어 — mv 는 가리키는 게 뭐든 통째로 옮겨.
rsync 로 갈아탈 타이밍
파일 몇 개 넘어가면 rsync -av source/ dest/ 로 갈아타. 재개 가능, 안 바뀐 거 skip, 권한 보존, 무슨 일 했는지 명확히 알려줌. network-remote 트랙에서 자세히.
마지막 슬래시 퀴즈
cp -r dir1 dir2— dir2 존재 시dir2/dir1생성. 없으면 dir2 가 dir1 복사본.cp -r dir1/ dir2/— dir1 의 내용 을 dir2 로.cp -r dir1/. dir2/— 위와 동일, 더 명시적.
외울 필요 없어. 항상 cp -nv 먼저 돌려서 출력 보고 -n 빼.