[맥 터미널 / 유닉스] 별도의 프로그램 없이 기기간 서버간 파일 공유하기 | scp, ftp

맥의 터미널을 활용하면, 별도의 프로그램이 없이 커맨드 라인만으로 기기간 서버간 파일공유가 가능합니다. Unix Wildcard를 사용할 수 있어 매우 효과적이고, 빠르게 파일을 복사 할 수 있습니다.


scp command를 이용한 파일 복사

우선, 접근하고자 하는 컴퓨터의 System Preference > Sharing에서 Remote Login 옵션을 켜주셔야합니다. 그리고 Remote User@Remote Machine의 주소를 기억해두셔야합니다.

내 컴퓨터의 파일을 다른 컴퓨터로 복사하기

아래 문법으로 진행하시면 됩니다.

$scp <내 컴퓨터의 파일 경로> <remote user>@<remote machine>:<다른 컴퓨터의 파일 경로>
$scp ~/Desktop/* SeongjuneKim@192.168.0.5:~/Desktop
Password:
a.txt 100% 0 0.0KB/s 00:00
example1.txt 100% 0 0.0KB/s 00:00
screen.png 100% 262KB 7.8MB/s 00:00

다른 컴퓨터의 파일을 내 컴퓨터로 복사하기

아래 문법으로 진행하시면 됩니다.

$scp <remote user>@<remote machine>:<다른 컴퓨터의 파일 경로> <내 컴퓨터의 파일 경로>
$scp SeongjuneKim@192.168.0.5:~/Desktop/screen.png ~/Desktop
Password:
screen.png 100% 262KB 4.9MB/s 00:00

아마존 서버에서 파일 내 컴퓨터로 복사하기

$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 100% 0 0.0KB/s 00:00

내 파일을 아마존 서버로 복사하는 것은 내 컴퓨터의 파일을 다른 컴퓨터로 복사하는 것처럼 순서만 바꿔주시면 됩니다.

폴더 내의 모든 파일 복사하기

-r : Recursive 옵션을 사용하시면 됩니다.

$scp -r <remote user>@<remote machine>:<다른 컴퓨터의 파일 경로> <내 컴퓨터의 파일 경로>

sftp를 이용하여 파일 전송하기

위와 마찬가지로 컴퓨터의 Remote Login을 켜시면 sftp 서버가 열립니다. 아래 커맨드를 통해 올바르게 동작하는지 미리 확인을 하셔야 합니다.

$sftp localhost

sftp 서버로 접속한 후, 자주 사용되는 옵션은 간략하게 아래와 같습니다. 더 자세한 정보는 링크를 참조 부탁드립니다.

  • get, mget : 서버의 파일을 내 컴퓨터로 복사 (m:은 multiple의 약자)
  • put, mput : 내 컴퓨터의 파일을 서버로 복사
  • ls / dir : 파일 리스트 보기
  • cd : Change Directory

sftp의 경우 sftp 서버에 접속하기 전의 폴더가 중요합니다. 예를 들어, 아래와 같이 ~/Test Folder에서 접근하면, 내 컴퓨터에서 공유되는 파일은 ~/Test 폴더에서 이루어 집니다.

접속하는 방법

$sftp <remote machine>
~/Test (533) $ls
./ DSC04009.jpg DSC04017.jpg DSC04026.jpg example/../ 
DSC04014.jpg DSC04021.jpg DSC04031.jpg example.txt
.DS_Store DSC04016.jpg DSC04026 1.jpg DSC04033.jpg
~/Test (537) $sftp 192.168.0.5
Password:
Connected to 192.168.0.5.
sftp>

서버의 파일 내 컴퓨터로 복사하기 (sftp에 접속하기 이전의 경로로 복사)

단일 파일 :

$get a.txt

폴더 내의 모든 파일(하위 폴더 포함) :

$mget -r *

내 컴퓨터의 파일 서버로 복사하기 (sftp에 접속하기 이전의 경로로부터 복사)

단일 파일 :

$put a.txt

폴더 내의 모든 파일(하위 폴더 포함) :

$mput -r *

예시 :

sftp> mput -r *
Uploading DSC04009.jpg to /Users/SeongjuneKim/Desktop/DSC04009.jpg
DSC04009.jpg 100% 662KB 9.3MB/s 00:00
Uploading DSC04014.jpg to /Users/SeongjuneKim/Desktop/DSC04014.jpg
DSC04014.jpg 100% 800KB 10.1MB/s 00:00
Uploading DSC04016.jpg to /Users/SeongjuneKim/Desktop/DSC04016.jpg
DSC04016.jpg 100% 581KB 9.8MB/s 00:00
Uploading DSC04017.jpg to /Users/SeongjuneKim/Desktop/DSC04017.jpg
DSC04017.jpg 100% 514KB 10.2MB/s 00:00
Uploading DSC04021.jpg to /Users/SeongjuneKim/Desktop/DSC04021.jpg
DSC04021.jpg 100% 812KB 9.7MB/s 00:00
Uploading DSC04026 1.jpg to /Users/SeongjuneKim/Desktop/DSC04026 1.jpg
DSC04026 1.jpg 100% 802KB 8.6MB/s 00:00
Uploading DSC04026.jpg to /Users/SeongjuneKim/Desktop/DSC04026.jpg
DSC04026.jpg 100% 689KB 9.1MB/s 00:00
Uploading DSC04031.jpg to /Users/SeongjuneKim/Desktop/DSC04031.jpg
DSC04031.jpg 100% 727KB 10.1MB/s 00:00

ftp를 이용한 파일 전송

UPDATE : macOS High Sierra 부터 ftp command가 사라졌습니다. 그리고 아래 내용도 동작하지 않습니다.

사용방법은 위의 sftp와 동일합니다. 다만, macOS에 ftp Server를 열어야 하는데, 아래 커맨드를 터미널에서 실행하면 ftp 서버가 열립니다.

$sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist

또한, 닫는 방법은 아래와 같습니다.

sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist

예시 :

~/Test (539) $ftp localhost
Trying ::1...
Connected to localhost.
220 ::1 FTP server (tnftpd 20100324+GSSAPI) ready.
Name (localhost:SeongjuneKim):
331 User SeongjuneKim accepted, provide password.
Password:
230 User SeongjuneKim logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

접속하는 방법

$ftp <remote machine>

나머지 사용법은 sftp와 동일합니다. 위 내용을 참조 바랍니다.

4 COMMENTS

댓글 남기기