![建立一個別名以將本機目錄與遠端伺服器同步 - 這是不好的做法嗎?](https://rvso.com/image/1482476/%E5%BB%BA%E7%AB%8B%E4%B8%80%E5%80%8B%E5%88%A5%E5%90%8D%E4%BB%A5%E5%B0%87%E6%9C%AC%E6%A9%9F%E7%9B%AE%E9%8C%84%E8%88%87%E9%81%A0%E7%AB%AF%E4%BC%BA%E6%9C%8D%E5%99%A8%E5%90%8C%E6%AD%A5%20-%20%E9%80%99%E6%98%AF%E4%B8%8D%E5%A5%BD%E7%9A%84%E5%81%9A%E6%B3%95%E5%97%8E%EF%BC%9F.png)
免責聲明:我不是超級用戶。
問題:每次我想將伺服器與機器上的開發目錄同步時,我發現自己都會寫出這個野獸:
rsync -chavzP --stats user@host:/remote/ ~/local/
在我的 .zshrc 或其他東西中創建一個別名這樣我就不必每次都輸入這個是不好的做法嗎?使用者名稱和主機名稱總是很棘手並且充滿數字。我只是發現自己大部分時間都必須去找它。如果這是一種不好的形式(我感覺確實如此),我應該採取哪些其他方法來節省時間?
答案1
多年前,當我第一次開始使用Bash shell 時,我不願意定義要使用的別名,以防我變得依賴它們,然後如果在另一個沒有定義shell 別名的系統上,我會發現自己迷失了。
為了重複複雜的命令(例如您的rsync
命令),我使用了Ctrl-RBash 中的功能,該功能允許透過 shell 歷史記錄向後搜尋先前輸入的命令。
然而,這是不可靠的,幾年後,我得出的結論是,不使用別名只是愚蠢的。它們是幾十年前發明的(我們要感謝 C shell 的創建者 Bill Joy †)——有一個很好的理由:輸入長命令需要時間和精力。
大多數人不容易記住長命令,特別是如果他們只是偶爾使用它們,並且上面的rsync
命令是別名的完美用例,因為它也不需要任何參數(在這種情況下,將使用 shell 函數) 。
此外,如果您需要使用類似的命令,將別名儲存在 shell 啟動檔案中可以節省時間,因為您不必從外部來源查找命令的詳細資訊。
如今,使用者通常將其自訂 shell 別名、函數、設定檔和腳本儲存在伺服器上,以便在使用新的或不同的系統時可以檢索它們。有些人使用 Dropbox,其他人使用 GitHub,還有人將其上傳到自己的個人網路空間。這樣,他們的 shell 定制就始終可用。
結論/TLDR
使用此類別名稱是一種很好的做法,可以節省時間和打字,這也是創建它們的原因。將它們保存在 shell 啟動檔案中,例如.zshrc
意味著它們將始終可供您使用,並且被認為是 Unix shell 使用者的最佳實踐。
也可以看看
參考
†以下是比爾喬伊 (Bill Joy) 關於他的別名的說法C shell簡介:
此機制可用於簡化您鍵入的命令、為命令提供預設參數或對命令及其參數執行轉換。