얼마 전에 터미널에서 한 폴더 내의 모든 내용을 다른 폴더로 복사해야 하는 상황이 있었습니다. 당시 구글에서 검색하여 폴더를 통째로 복사했지만 생각처럼 복사되지는 않았습니다.

다시 검색해보니 몇 가지 방법이 있네요. 이 경우 다음과 같은 명령을 사용하면 될 것 같습니다.

cp -a /source/. /dest/
// Source: askubuntu.com

-a 옵션은 향상된 recursive(하위 항목 포함) 옵션이라고 하네요. 즉, 모든 파일 속성이 보존되고 symlink도 보존된다고 합니다.

원본 경로의 끝에 있는 점(.)은 숨김 파일을 포함한 모든 파일과 폴더를 복사하도록 허용하는 cp 구문이라고 합니다.

만약 /dest/를 통째로 덮어쓴다면 임시 폴더로 복사했다가 이상이 없으면 폴더 이름을 바꾸는 것도 괜찮을 것 같습니다.

또 다른 방법으로 다음과 같은 명령도 가능할 것 같습니다.

rsync -avh --dry-run /path/to/new/ /path/to/old/
// Source: superuser.com

rsync를 사용하면 디렉터리를 한 방향으로 동기화한다고 하네요. 그래서 old 폴더를 new의 모든 것으로 업데이트하는 경우에 위와 같은 명령을 사용할 수 있습니다.

만약 위의 명령이 제대로 작동하는 것 같으면 –dry-run 인수를 제거하도록 합니다.

폴더를 다른 폴더로 교체할 때에는 사전에 확실히 연구한 후에 진행하는 것이 안전한 것 같습니다. 어설프게 진행했다가 저처럼 낭패를 볼 수도 있을 것입니다.

해외 가상 호스팅(VPS) 서비스 중 하나인 Vultr에서 운영 중인 사이트가 있는데, 자주 Linux를 사용하게 되네요. 저렴하게 VPS를 사용하여 워드프레스를 운영하려고 하니 쉽지는 않지만 한편으로 재미있기도 합니다. (맘 편하게 사이트를 운영하려면 Bluehost VPS와 같은 관리형을 사용하거나 Siteground 등의 공유호스팅을 사용하면 될 것 같습니다.)