總結(jié) - Mac 環(huán)境里 FTP 操作小結(jié)

toilet

近幾日在協(xié)調(diào)一個類似商品微店的項目淋淀,客戶需求還沒來得及了解,項目的前端與后端分別是兩個開發(fā)組并行推進(jìn)覆醇,現(xiàn)在前后端工作進(jìn)入尾期需要合并測試朵纷,而我在其中扮演中間人的角色。

Mac 環(huán)境信息

這篇筆記算是在 Mac 環(huán)境里基于 FTP 協(xié)議操作本地永脓、服務(wù)器文件系統(tǒng)的一套完整解決方案袍辞,整理下來以備日后再用。

FTP 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱常摧,而中文簡稱為“文傳協(xié)議”搅吁。

TCP/IP 協(xié)議中,F(xiàn)TP 標(biāo)準(zhǔn)命令 TCP端口號為 21落午,Port方式數(shù)據(jù)端口為 20谎懦。

FTP的任務(wù)是從一臺計算機(jī)將文件傳送到另一臺計算機(jī),不受操作系統(tǒng)的限制溃斋。

初階: Finder 查看/下載

Mac 環(huán)境中的文件系統(tǒng)原生支持連接 FTP 服務(wù)器查看文件目錄界拦,但功能十分有限,僅支持查看梗劫、下載 FTP 服務(wù)器中的文件[夾]寞奸,不支持上傳、編輯在跳、刪除文件[夾]枪萄,滿足了查閱目錄結(jié)構(gòu)、文件配置等最基本的需求猫妙。

Finder 連接 FTP 服務(wù)器瓷翻,步驟一
Finder 連接 FTP 服務(wù)器,步驟二

要把前端同事的網(wǎng)頁批量上傳至 FTP 服務(wù)器割坠,這時就可以使用 FTP 命令行勞心了齐帚。

進(jìn)階:FTP 命令

1. 登錄

命令行中最簡單的兩種登錄方式,首次登錄使用方式一比較簡單彼哼,連接超時可以再使用方式二重新登錄对妄,兩種登錄方式算是配合或組合關(guān)系。

# 方式一
$ ftp server-ip

# 方式二
$ ftp
ftp> open server-ip

實例登錄場景效果:

$ ftp 139.196.161.141
Connected to 139.196.161.141.
220-FileZilla Server 0.9.53 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit https://filezilla-project.org/
Name (139.196.161.141:lijunjie): username
331 Password required for username
Password:
230 Logged on
Remote system type is UNIX.
ftp> 
// wait a long time
ftp> ls
421 Connection timed out.
ftp> open 139.196.161.141
Connected to 139.196.161.141.
220-FileZilla Server 0.9.53 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit https://filezilla-project.org/
Name (139.196.161.141:lijunjie): username
331 Password required for username
Password:
230 Logged on
Remote system type is UNIX.
ftp>

登錄成功后敢朱,就會進(jìn)入 FTP 命令行環(huán)境剪菱,此時如何分辨本地與服務(wù)器的目錄呢摩瞎?此時的視角猶如四游記中一直在天空中隱身保護(hù)唐僧的五方揭諦四值功曹,上觀天堂神仙歡樂事孝常、下覽人間凡體苦難狀旗们;此時不能說查看目錄,而應(yīng)該說查看本地目錄或服務(wù)器目錄构灸,與文件系統(tǒng)相關(guān)的命令操作都分本地與服務(wù)器兩套上渴。

服務(wù)器操作 本地目錄操作
cd 目錄名(進(jìn)入服務(wù)器目錄) lcd 目錄名(進(jìn)入本機(jī)目錄)
cd \(退到服務(wù)器根目錄) lcd \(退到本機(jī)根目錄)
cd ..(退回到上一級目錄) lcd ..(退回到上一級目錄)
pwd !pwd
ls !ls

**2. 上傳文件[夾] **

上傳本地文件至服務(wù)器指定目錄中,必須顯式指定上傳至服務(wù)器后文件名稱喜颁。

# server-filename 必須顯式指明稠氮,否則報錯:文件名無效
ftp> put /local/path/filename /remote/path/server-filename

ftp> cd /views
250 CWD successful. "/views" is current directory.
ftp> put /local/path/report_161226.cshtml report2.cshtml
local: /local/path/report_161226.cshtml remote: report2.cshtml
229 Entering Extended Passive Mode (|||56835|)

150 Opening data channel for file upload to server of “/views/report2.cshtml"
100% |*| 10865        2.87 MiB/s    --:-- ETA

226 Successfully transferred “/views/report2.cshtml"
10865 bytes sent in 00:00 (85.37 KiB/s)

使用通匹符批量上傳文件至服務(wù)器,需要注意的一點半开,mput 不支持懶操作即使用絕對路徑括袒,應(yīng)該先進(jìn)入要上傳的本地文件夾及遠(yuǎn)程文件夾才可以操作,確實這樣顯得上傳操作異常簡潔稿茉。

ftp> cd /remote/path
ftp> lcd /local/path
ftp> mput goods*
local: goods.cshtml remote: goods.cshtml
229 Entering Extended Passive Mode (|||62331|)

150 Opening data channel for file upload to server of "/local/path/goods.cshtml"
100% |*|   519        1.80 MiB/s    --:-- ETA

226 Successfully transferred "/local/path/goods.cshtml"
519 bytes sent in 00:00 (9.54 KiB/s)

關(guān)于上傳文件夾锹锰, FTP 命令不支持文件夾上傳操作

3. 下載文件[夾]

下載服務(wù)器中的文件至本地目錄中漓库,可選指定下載至本地目錄后的文件名稱恃慧,依然要求提前進(jìn)入待下載文件的目錄中

# 方式一
ftp> get remote-filename
# 方式二
ftp> get remote-filename local-filename
ftp> get Web.config
local: Web.config remote: Web.config
229 Entering Extended Passive Mode (|||58735|)
150 Opening data channel for file download from server of "/Web.config"
100% |*|  1300        2.28 MiB/s    00:00 ETA
226 Successfully transferred "/Web.config"
1300 bytes received in 00:00 (142.33 KiB/s)
ftp> get Web.config hello.config
local: hello.config remote: Web.config
229 Entering Extended Passive Mode (|||53446|)
150 Opening data channel for file download from server of "/Web.config"

100% |*|  1300        2.55 MiB/s    00:00 ETA

226 Successfully transferred "/Web.config"
1300 bytes received in 00:00 (143.20 KiB/s)

使用通匹符批量下載服務(wù)器中的文件至本地目錄渺蒿。

ftp> cd /remote/path
ftp> mget filename*

關(guān)于下載文件夾痢士, FTP 命令不支持文件夾下載操作

4. 刪除文件[夾]

在服務(wù)器中刪除文件茂装,可以指定絕對路徑怠蹂,相對其他命令顯得比較靈活。

ftp> delete /remote/path/category.cshtml
250 File deleted successfully
ftp> mdelete *_order*
mdelete goods_order.cshtml [anpqy?]? a
Prompting off for duration of mdelete.
250 File deleted successfully
250 File deleted successfully
250 File deleted successfully
250 File deleted successfully
250 File deleted successfully
250 File deleted successfully
250 File deleted successfully

關(guān)于刪除文件夾少态, FTP 命令不支持文件夾刪除操作城侧。

5. 移動文件

FTP 命令不支持移動文件,只能通過刪除再上傳文件變相的實現(xiàn)移動文件彼妻。

6. 增刪改查

操作 單文件 批量操作(multi)
put mput
delete mdelete
不支持 不支持
get mget

7. FileZilla 工具

涉及到服務(wù)器端文件夾的修改嫌佑、刪除等操作時,就需要安裝一下 FileZilla 工具侨歉;使用 FTP 命令登錄后的提示內(nèi)容中可以看到 FileZilla 字樣屋摇。

FileZilla 工具界面很簡單,全程使用鼠標(biāo)拖拖拉拉即可完成操作幽邓。

高階:腳本操作

其實沒有很復(fù)雜的場景炮温,把前端的靜態(tài)資源使用 FileZilla 工具一次性上傳至服務(wù)器,按照后端同事的要求把不同功能需求的網(wǎng)頁上傳至服務(wù)器不同目錄下牵舵,這種批量重復(fù)性的無聊操作最佳解決方案就是寫入腳本柒啤,省時倦挂、準(zhǔn)確、周全白修,后續(xù)前端同事調(diào)整網(wǎng)頁內(nèi)容時妒峦,調(diào)用一下腳本即可重斑。

$ cat commands.txt
open remote-server-ip 
user user-name user-password
binary /*以二進(jìn)制傳送*/ 
hash   /*當(dāng)有數(shù)據(jù)傳送時兵睛,顯示#號*/ 

cd /remote/path1
lcd /local/path2
mput file1.*

cd /remote/path2
!cd /local/path2
mput file2.*

bye   /*退出*/ 
$ cat commands.txt | ftp -n

不喜歡 bash 腳本中的 EOF 用法,感覺代碼思路不夠清晰窥浪,但需要使用變量時祖很,就不得不使用這種寫法了。

$ commands.sh
#!/usr/bin/env bash

timestamp=$(date "+%Y%m%d")
# mkdir -p ${timestamp} && touch ${timestamp}/hello.txt

cat <<EOF | ftp -n
open 139.196.161.141
user junjie junjie
binary
hash

!ls ${timestamp}/

bye
EOF

sed 批量修改文件

后端同事部署的測試環(huán)境中漾脂,前端同事的頁面對靜態(tài)資源的引用需要調(diào)整一下假颇,有章可循,也就是一條 sed 命令回車間可以解決的骨稿。

# 方式一:無備份
$ sed -i '' 's/wait-replace/to-replace/g' filename
# 方式二:備份
$ sed -i '.bak' 's/wait-replace/to-replace/g' filename
$ cat filename // 確認(rèn)修改無誤
$ rm *.bak     // 刪除備份

# ./resource 替換為 /mobile/resource
$ sed -i '.bak' 's/\.\/resource/\/mobile\/resource/g' project/*.html
$ rm project/*.html.bak

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笨鸡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子坦冠,更是在濱河造成了極大的恐慌形耗,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辙浑,死亡現(xiàn)場離奇詭異激涤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)判呕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門倦踢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人侠草,你說我怎么就攤上這事辱挥。” “怎么了边涕?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵般贼,是天一觀的道長。 經(jīng)常有香客問我奥吩,道長哼蛆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任霞赫,我火速辦了婚禮腮介,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘端衰。我一直安慰自己叠洗,他們只是感情好甘改,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灭抑,像睡著了一般十艾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腾节,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天忘嫉,我揣著相機(jī)與錄音,去河邊找鬼案腺。 笑死庆冕,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的劈榨。 我是一名探鬼主播访递,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼同辣!你這毒婦竟也來了拷姿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旱函,失蹤者是張志新(化名)和其女友劉穎暖庄,沒想到半個月后唬血,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年指郁,在試婚紗的時候發(fā)現(xiàn)自己被綠了垃环。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酪我。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡夫植,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出颅眶,到底是詐尸還是另有隱情蜈出,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布涛酗,位于F島的核電站铡原,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏商叹。R本人自食惡果不足惜燕刻,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剖笙。 院中可真熱鬧卵洗,春花似錦、人聲如沸弥咪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至酷勺,卻和暖如春本橙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脆诉。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工甚亭, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人库说。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓狂鞋,卻偏偏與公主長得像片择,于是被迫代替她去往敵國和親潜的。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1字管、第八章 Samba服務(wù)器2啰挪、第八章 NFS服務(wù)器3、第十章 Linux下DNS服務(wù)器配站點嘲叔,域名解析概念命令:...
    哈熝少主閱讀 3,734評論 0 10
  • FTP服務(wù)概述 簡單FTP構(gòu)建及訪問 VSFTP服務(wù)基礎(chǔ) 用戶禁錮亡呵、黑白名單 FTP并發(fā)及帶寬限制 一、FTP服務(wù)...
    紫_軒閱讀 7,609評論 3 25
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理硫戈,服務(wù)發(fā)現(xiàn)锰什,斷路器,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • Ubuntu的發(fā)音 Ubuntu嫩码,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音罪既。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,271評論 9 467
  • 圖片更清晰铸题,文字在最下面 FTP是TCP/IP的一種應(yīng)用,使用TCP而不是UDP琢感,所以是可靠的丢间,面向連接的。 FT...
    停下浮躁的心閱讀 1,712評論 0 4