Bash

scprsync 中使用標誌定義目標目錄(如 cp -t

  • November 17, 2017

由於我經常通過網路將不同數量的特定文件複製到(相當複雜的)目標目錄,如果我可以使用cp-t標誌,我的生活會輕鬆得多:有了它,您可以指定目標目錄“在開始”——而不是作為最後的論點。

這樣,我可以CTRL-R先複製命令,然後再CTRL-W复制之前複製的文件,同時保留(複雜的)設置和目標系統和目錄,無論之前有多少文件。

但我找不到任何合適的標誌,無論是 forscp還是 for rsync。(如果其中一個提供此選項,我會使用其中一個。)

scprsync提供任何類似的東西cp -t

在我絕望中,我什至玩弄了bash的歷史控制,特別是參數提取​​機制:不幸的是,似乎不可能以“第x個參數到最後一個- but-one”,我需要它,因為我並不總是有參數的數量(除非我數……)。

也許你可以定義一個環繞的函式scp

scpt () {
   scp "$@" user@host:/some/convoluted/path
}

然後做

scpt file1
scpt /dir1/file2

此外,通過歷史互動,您可以使用 獲取上一個scp命令的最後一個參數!scp:$,因此您也可以這樣做:

scp /dir1/file2 !scp:$

(因為目標目錄通常是最後一個)

引用自:https://unix.stackexchange.com/questions/405135