본 글은 별도의 앱(프로그램) 없이 터미널을 활용하여 파일을 공유하는 방법입니다. 구체적으로는 scp와 ftp 커맨드 사용 방법을 기록해두었습니다. 이 방법은 유닉스 와일드카드를 사용하실 수 있기 때문에 GUI 환경에서 복사하는 것보다 효율적으로 다량의 파일을 전송하실 수 있다는 것이 그 장점입니다. 아래 목록을 참고하시어 필요한 정보 확인 바랍니다.
- UPDATE 2019-03-13 : 이미지 및 문구 수정
목차
맥과 맥 사이 파일 전송 시 사전 조치 사항 | System Preferences > Sharing > Remote Login ▼
- 접속할 대상의 컴퓨터의 ‘Remote Login’ 옵션을 활성화
- 접근할 사용자를 추가
- User@Remote Machine(NEW@192.168.10.7)로 접속
원격 로그인(ssh) 예시 ▼
$ ssh NEW@192.168.10.7 Password: Last login: Wed Mar 13 17:30:03 2019 2019년 3월 13일 수요일 17시 41분 02초 KST
터미널 메뉴바의 ‘New Remote Connection’에 해당 정보를 등록해두시면 매번 타이핑하지 않으셔도 됩니다.
- 터미널 메뉴 > Shell > New Remote Connection
scp를 이용한 파일 전송
scp(Secure Copy Protocol)을 활용한 파일 전송 방법입니다. 컴퓨터 A와 컴퓨터 B로 나누어 사용처별로 정리해두었으니 활용하시기 바랍니다.
- 컴퓨터 A : 내가 지금 사용 중인 컴퓨터(클라이언트)
- 컴퓨터 B : 접속 대상 컴퓨터(서버)
터미널에서의 파일 공유 모습 ▼
컴퓨터 A의 파일을 컴퓨터 B로 전송
내가 사용 중인 맥에 있는 파일을 다른 맥으로 옮기는 방법입니다.
기본 문법 ▼
$ scp <컴퓨터 A의 파일 경로> <remote user>@<remote machine>:<컴퓨터 B 파일 경로>
예시 ▼
$ scp ~/Desktop/example4.txt NEW@192.168.10.7:~/Desktop The authenticity of host '192.168.10.7 (192.168.10.7)' can't be established. ECDSA key fingerprint is SHA256:SBU7BhrwsBZ5uIp3Ikdexe5ePDUAQvs68CobmJ9eHw8. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.10.7' (ECDSA) to the list of known hosts. Password: example4.txt 100% 67 41.6KB/s 00:00
컴퓨터 B의 파일을 컴퓨터 A로 전송
대상 맥에 있는 파일을 내 맥으로 가져오는 방법입니다.
기본 문법 ▼
$ scp <remote user>@<remote machine>:<컴퓨터 B의 파일 경로> <컴퓨터 A의 파일 경로>
예시 ▼
$ scp NEW@192.168.10.7:~/Desktop/screen.png ~/Desktop Password: screen.png 100% 262KB 4.9MB/s 00:00
(아마존) 서버에 있는 파일 내 컴퓨터로 전송
서버와의 통신을 예로 들기 위해 사용 중인 아마존 서버에서 파일을 가져와보았습니다. 보안 연결을 사용하므로 ‘-i [키파일]’을 함께 입력해주셔야 합니다.
$ scp -i [키파일] <remote user>@<remote machine>:<서버의 파일 경로> <내 컴퓨터의 파일 경로>
예시 ▼
$ scp -i dataguide.pem ubuntu@ecX-XX-XXX-XXX-XX.ap-northeast-2.compute.amazonaws.com:/var/www/a.txt ~/Desktop a.txt
내 파일을 아마존 서버로 복사하는 것은 내 컴퓨터의 파일을 다른 컴퓨터로 복사하는 것처럼 순서만 바꿔주시면 됩니다.
디렉토리 내의 모든 파일 복사하기 ▼
-r : Recursive 옵션을 사용하시면 됩니다.
$ scp -r <remote user>@<remote machine>:<서버의 파일 경로> <내 컴퓨터의 파일 경로>
sftp를 이용하여 파일 전송하기
마찬가지로 Remote Login이 활성화된 상태에서 진행하셔야 합니다. sftp 커맨드가 올바르게 동작하는지는 서버 컴퓨터에서 sftp로 로컬호스트에 접속해보시면 쉽게 확인이 가능합니다.
$ sftp localhost
파일 전송 관련 커맨드 ▼
파일 전송과 관련된 간략한 커맨드는 아래와 같습니다. 더 자세한 정보는 링크를 참조 부탁드립니다.
- get, mget : 서버의 파일을 내 컴퓨터(클라이언트)로 전송 (m: multiple의 약자)
- put, mput : 내 컴퓨터(클라이언트)의 파일을 서버로 전송 (m: multiple의 약자)
- ls / dir : 파일 리스트 보기
- cd : 디렉토리 변경(Change Directory)
접속하는 방법
‘사용자@서버 주소’를 이용하여 접속하시면 됩니다.
기본 문법
$ sftp <사용자>@<remote machine>
예시 ▼
$ sftp NEW@192.168.10.7 Password: Connected to 192.168.10.7. sftp>
서버의 파일 > 내 컴퓨터로 전송
단일 파일 ▼
get [서버 파일 경로] [클라이언트 파일 경로]
sftp> get Earth_Map.png /Users/Travelholics/Desktop Fetching /Users/NEW/Desktop/Earth_Map.png to /Users/Travelholics/Desktop/Earth_Map.png /Users/NEW/Desktop/Earth_Map.png 100% 33MB 10.3MB/s 00:03
디렉토리 내 모든 파일(하위 디렉토리 포함) ▼
sftp> mget -r *
내 컴퓨터의 파일 서버로 전송
단일 파일 ▼
put [클라이언트 파일 경로] [서버 파일 경로]
sftp> put a.txt
디렉토리 내 모든 파일(하위 디렉토리 포함) ▼
sftp> mput -r *
sftp> mput -r * Uploading DSC04009.jpg to /Users/NEW/Desktop/DSC04009.jpg DSC04009.jpg 100% 662KB 9.3MB/s 00:00 Uploading DSC04014.jpg to /Users/NEW/Desktop/DSC04014.jpg DSC04014.jpg 100% 800KB 10.1MB/s 00:00 Uploading DSC04016.jpg to /Users/NEW/Desktop/DSC04016.jpg DSC04016.jpg 100% 581KB 9.8MB/s 00:00 Uploading DSC04017.jpg to /Users/NEW/Desktop/DSC04017.jpg DSC04017.jpg 100% 514KB 10.2MB/s 00:00 Uploading DSC04021.jpg to /Users/NEW/Desktop/DSC04021.jpg DSC04021.jpg 100% 812KB 9.7MB/s 00:00 Uploading DSC04026 1.jpg to /Users/NEW/Desktop/DSC04026 1.jpg DSC04026 1.jpg 100% 802KB 8.6MB/s 00:00 Uploading DSC04026.jpg to /Users/NEW/Desktop/DSC04026.jpg DSC04026.jpg 100% 689KB 9.1MB/s 00:00 Uploading DSC04031.jpg to /Users/NEW/Desktop/DSC04031.jpg DSC04031.jpg 100% 727KB 10.1MB/s 00:00
ftp를 이용한 파일 전송
* High Sierra에 들어와서 ftp와 telnet이 제거되었으며, sftp 사용이 권유되고 있습니다. 고로 아래 내용은 취소선 처리합니다.
접속 시 ‘s’를 빼는 것 외에는 사용 방법이 sftp와 완전히 동일합니다. 위 sftp 문단을 참고 바랍니다.
$ ftp <remote machine>
서버 열기 ▼
$sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
서버 닫기 ▼
sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist
예시 ▼
$ ftp localhost Trying ::1... Connected to localhost. 220 ::1 FTP server (tnftpd 20100324+GSSAPI) ready. Name (localhost:Travelholics): 331 User Travelholics accepted, provide password. Password: 230 User Travelholics logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp>
이상입니다.