macOS 알짜배기 명령어(pbcopy, pbpaste, rsync)

한지승
HASHBOX
Published in
4 min readMar 18, 2019
Photo by Kaitlyn Baker on Unsplash

macOS를 사용하면서 터미널에서 제가 많이 사용하는 명령어가 있습니다. 하지만, 다른 개발자분들과 얘기하다보면 생각보다 모르는 분들이 많은 것같아 간단하게 소개시켜 드릴려고 합니다. 제가 소개 시켜드릴려는 명령어는 pbcopy, pbpaste, rsnyc 입니다. pbcopy, pbpaste는 맥에서만 제공되어지는 기능이고, rsync는 리눅스에서 제공되는 기능으로 맥에도 기본으로 제공하고 있습니다. 지금부터 차근차근 알아보도록 하겠습니다.

우선 명령어만 보셔도 바로 기능이 무엇인지 아실것 같지 않으시나요? 맞습니다. pbcopy는 클립보드에 복사해 오는 것이고, pbpaste는 클리보드에 있는 내용을 붙여넣기하는 기능입니다.

pbcopy

cat logs.log | pbcopy

위와 같은 명령어는 logs.log라는 파일의 내용을 모두 클립보드에 복사하라는 의미로 사용하실 수 있습니다. iTerm과 같은 프로그램에서 그냥 드래그하셔서 복사하실 수 있지 않나라고 생각하실 수도 있지만, 저와 같은 경우엔 vim으로 사용하고 있을 경우 set nu로 설정하여 줄넘버를 표시하도록 사용하고 있습니다. 이 경우 복사하고 붙여넣었을 때 줄넘버도 같이 복사해서 결국은 다시 코드를 포맷팅 해야하는 귀찮은 작업을 하곤 했습니다. 하지만 pbcopy와 같은 명령어를 사용할 경우 바로 붙여 넣을 수도 있습니다. 뿐만아니라 터미널에서 작업한 내용을 GUI환경에서 붙여 넣을 때 동안 사용할 수 있기 때문에 알고 있으면 굉장히 편합니다.

pbpaste

pbpaste | test.txt

위와 같은 명령어는 클립보드에 있는 내용으로 test.txt 파일을 생성하라는 명령어입니다. 즉, 코드를 복사하거나 기본 파일을 만들 때, 클립보드에 있는 내용을 기반으로 vim과 같은 텍스트 편집기를 열지 않고 바로 생성할 수 있습니다.

pbpaste | grep "바보"

또 위와 같은 명령어는 클립보드에 있는 내용에서 바보라는 내용이 있으면 출력해 달라는 구문으로 클립보드 내에서 간단하게 검색도 가능합니다.

이처럼 생각보다 pbcopypbpaste는 간단하지만 활용할수록 무궁무진한 응용성과 빠른 편의성을 제공합니다.

rsync

rsync 는 기본적으로 리눅스에서도 사용되어지는 명령어인데요. 특정 폴더를 다른 폴더내에 똑같이 동기화 시켜주는 역할을 해주는 명령어라 생각하시면 됩니다.

rsync -ruv --progress /path/important /home

위와 같은 명령어는 /path/important의 디렉토리 내에 있는 파일을 /home/important에 똑같이 파일을 동기화하라는 명령어입니다. 여기서 문제는 위와 같은 명령어는 생성한 파일들에 대해서는 동기화를 해주지만 /path/important에 있는 파일이 삭제될 경우에는 동기화하지 않아 /home/important에는 존재합니다. 물론 모든 파일들을 보존하는 차원에서는 위와 같은 명령어를 사용하시면 되지만, 완전히 똑같이 동기화하고 싶은 경우에는 다음과 같은 명령어를 추가해주면 됩니다.

rsnyc -ruv --delete /path/important /home

위와 같이 --delete를 추가하면 두 디렉토리를 똑같이 동기화할 수 있습니다. 이처럼 같은 로컬 내에서 폴더를 동기화를 하는 방법에 대해서 알아보았지만 원격에 있는 서버에 동기화하고 싶은 경우는 안되는걸까요? 다행히도 원격에도 동기화가 가능합니다.

rsync -ruv --delete /path/important root@<remote_address>:/home

위와 같이 ssh에 접속하듯이 명명을 해주면 원격에 있는 서버와 동기화도 가능합니다. 단, 원격 서버가 ssh포트에 대한 접근이 허용되어 있어야 가능합니다.

마무리

세 개의 명령어에 대해서 알아보았습니다. 생각보다 간단한 기능이면서 강력한 편의성을 제공해주는 명령어지만 macOS에서 기본으로 제공하는지 모르는 분들이 많습니다. 제 글을 통해서 기본 기능에 대해서 알고 무궁무진하게 활용할 수 있으시면 좋겠습니다.

--

--

한지승
HASHBOX
Editor for

딥러닝 분야에 모험가 — Machine Learning Engineer @ Clova, Naver Corp. — CV (https://hashbox.github.io)