Linux

Linux 使用 NcFTP 指令介面 FTP Client 教學

介紹如何在 Linux 系統的命令列中使用 NcFTP 指令 FTP 工具,上傳或下載檔案。

NcFTP 是一個指令介面的 FTP client 工具,可以讓 Linux 使用者在命令列或指令稿的環境下,輕鬆透過 FTP 等檔案傳輸協定上傳或下載檔案。

FTP 傳輸檔案

若要登入匿名的 FTP 伺服器,只要執行 ncftp 再加上 FTP 伺服器位址即可:

# 登入 FTP 匿名伺服器
ncftp ftp://ftp.gnu.org/

若要直接在登入之後進入指定目錄,可將路徑直接加在伺服器位址上:

# 登入 FTP 伺服器,並進入指定目錄
ncftp ftp://ftp.gnu.org/gnu/

若 FTP 伺服器需要帳號與密碼,則可使用 -u-p 來分別指定帳號與密碼:

# 指定帳號與密碼
ncftp -u USERNAME -p PASSWORD ftp://your.site/path/

在進入 NcFTP 的互動式 shell,並成功登入伺服器之後,會顯示類似這樣的提示訊息:

Login successful.
Logged in to ftp.gnu.org.
Current remote directory is /.
ncftp / >

接著就可以使用 NcFTP 的指令進行檔案的上傳、下載等各種操作了,以下是一些常用的 NcFTP 指令。

指令 說明 範例
ls 列出檔案清單 ls
get 下載檔案 get FILE.txtget *.txt
get -R 下載目錄 get -R FOLDER
put 上傳檔案 put FILE.txt
put -R 上傳目錄 put -R FOLDER
cat 顯示檔案內容 cat FILE.txt
cd 進入目錄 cd FOLDER
chmod 更改檔案權限 chmod 644 FILE.txt
rename 更改檔案名稱 rename FILE.txt NEW.txt
rm 移除檔案 rm FILE.txt
mkdir 建立目錄 mkdir FOLDER
rmdir 移除目錄 rmdir FOLDER
pwd 顯示目前路徑 pwd
edit 編輯檔案 edit FILE.txt
page 查閱檔案內容 page FILE.txt
pls 分頁列出檔案清單 pls

以下是對本地端操作的指令。

指令 說明 範例
lls 列出本地端檔案清單 lls
lcd 進入本地端目錄 lcd FOLDER
lchmod 更改本地端檔案權限 lchmod 644 FILE.txt
lrename 更改本地端檔案名稱 lrename FILE.txt NEW.txt
lrm 移除本地端檔案 lrm FILE.txt
lmkdir 建立本地端目錄 lmkdir FOLDER
lmkdir 移除本地端目錄 lrmdir FOLDER
lpwd 顯示目前本地端路徑 lpwd
lpage 查閱本地端檔案內容 lpage FILE.txt

NcFTP 也有背景工作的功能,放入背景的工作會由另外一個 NcFTP 的 daemon 負責處理,以下是背景工作相關的指令。

指令 說明 範例
bgget 背景下載檔案 bgget FILE.txt
bgput 背景上傳檔案 bgput FILE.txt
bgstart 開始背景工作 bgstart
jobs 顯示背景工作 jobs

如果在下載目錄時出現這樣的錯誤訊息:

tar: This does not look like a tar archive
tar: Error exit delayed from previous errors

可以加上 -T 參數,關閉 tar 壓縮下載功能:

# 不使用 tar 壓縮下載目錄
get -TR FOLDER

快速列出 FTP 伺服器檔案

ncftpls 指令可用來快速列出 FTP 伺服器上指定路徑下的檔案,作用與用法都類似 Linux 的 ls 指令:

# 列出 FTP 伺服器上的檔案
ncftpls ftp://ftp.gnu.org/gnu/
3dldf/
8sync/
=README
=README-about-.diff-files
=README-about-.gz-files

若要顯示檔案的詳細資訊,則可加上 -l 參數:

# 列出 FTP 伺服器上的檔案詳細資訊
ncftpls -l ftp://ftp.gnu.org/gnu/
drwxr-xr-x    2 3003     3003         4096 Dec 13  2013 3dldf
drwxr-xr-x    2 3003     3003         4096 Mar 18  2017 8sync
-rw-r--r--    1 3003     65534        1492 Jan 25  2001 =README
-rw-r--r--    1 3003     65534         745 Mar 20  1997 =README-about-.diff-files
-rw-r--r--    1 3003     65534        1042 Jan 08  2000 =README-about-.gz-files

加上 -a 參數可以一併列出句點開頭的隱藏檔:

# 列出隱藏檔
ncftpls -a ftp://ftp.gnu.org/gnu/

若 FTP 伺服器需要帳號與密碼,則可使用 -u-p 來分別指定帳號與密碼:

# 指定帳號與密碼
ncftpls -u USERNAME -p PASSWORD ftp://your.site/path/

快速下載檔案

若要在 shell 之下或是指令稿之中快速下載 FTP 伺服器上的檔案,可以使用 ncftpget 指令,其作用就跟一般的 wget 非常類似:

# 下載 FTP 伺服器上的檔案
ncftpget ftp://ftp.gnu.org/gnu/w3.README

若要下載整個目錄,則加上 -R 參數:

# 下載 FTP 伺服器上的整個目錄
ncftpget -R ftp://ftp.gnu.org/gnu/which/

帳號與密碼的指定方式也都一樣:

# 指定帳號與密碼
ncftpget -u USERNAME -p PASSWORD ftp://your.site/path/file.txt

快速上傳檔案

若需要在 shell 之下或是指令稿之中快速上傳檔案至 FTP 伺服器,則可使用 ncftpput 指令:

# 上傳檔案至 FTP 伺服器
ncftpput ftp.site.com /remote/upload/ local.txt

若要上傳整個目錄,則可加上 -R 參數:
# 上傳目錄至 FTP 伺服器
ncftpput -R ftp.site.com /remote/upload/ local.txt
帳號與密碼的指定方式也都一樣:

# 指定帳號與密碼
ncftpput -u USERNAME -p PASSWORD ftp.site.com /remote/upload/ local.txt

ncftpput-c 參數可以讓它從標準輸入讀取資料上傳至 FTP 伺服器,跟其他的 Linux 指令搭配之後,可應用在很多地方,例如直接將資料壓縮備份後,上傳至 FTP 伺服器:

# 備份資料至 FTP 伺服器
tar zcf - /my/data | ncftpput -c ftp.site.com /upload/backup.tar.gz
Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago