SCP 單行程式碼在行尾上傳文件

SCP 單行程式碼在行尾上傳文件

我常常這樣做:

scp some_file [email protected]

我對此感到惱火,因為我總是複製和貼上這一行,然後我需要編輯中間部分來更改我要上傳的檔案。

是否可以修改這一行,使檔案名稱位於末尾並且仍然有效?

基本上我想要可以貼上到 shell 中的任何字串,然後輸入檔案名稱並將檔案上傳scp到伺服器。

答案1

為什麼不製作一個超級簡單的腳本呢?只需編輯一個名為 say 的文件,其中myscp包含

#!/bin/bash
scp $1 [email protected]

然後chmod +x myscp,以便稍後您可以簡單地

./myscp some_file

這一切都假設您的myscp腳本位於當前目錄,否則添加路徑

/path/to/myscp some_file

或者更好的是,將位置的路徑以及此腳本和希望將來的腳本添加到您的$path.

答案2

可能的解決方案之一:

(read FILE_NAME; scp "$FILE_NAME" [email protected]) <<< some_file

答案3

新增到您的 shell 或等效項的末尾.bashrc

my_function_name() {
    if [ -r "$1" ]; then
        scp "$1" [email protected]
    else
        echo "File does not exists or can not be read, $1" >&2
        return 1
    fi
}

my_function_name根據您的需求進行更改。

現在,您只需按名稱呼叫函數並傳遞一個檔案作為參數,它將測試讀取存取權限並scp使用它運行,或者如果無法讀取它則退出。

請注意,我使用了return而不是exit因為它將由您的互動式 shell 加載,並且如果您使用exitshell 將終止。

答案4

不,如果不將參數包裝在 shell 腳本中,您就無法更改參數的順序,但您可以...

R='[email protected]'
scp some_file $R
scp other_file $R
...

相關內容