私はしばしばそうします:
scp some_file [email protected]
常にこの行をコピーして貼り付けてから、アップロードするファイルを変更するには中間部分を編集する必要があるため、迷惑です。
ファイル名が最後に来るようにして、引き続き機能するようにこの行を変更できますか?
デフォルトでは、私はシェルに貼り付けることができる文字列が欲しく、ファイル名を入力してファイルをscp
サーバーにアップロードします。
答え1
非常に単純なスクリプトを作成してみてはいかがでしょうか?以下をmyscp
含むsayというファイルを編集します。
#!/bin/bash
scp $1 [email protected]
その後、chmod +x myscp
後で簡単に
./myscp some_file
これはすべてmyscp
スクリプトが現在のディレクトリにあると仮定し、そうでない場合はパスを追加します。
/path/to/myscp some_file
または、より良い方法は、場所へのパスと、このスクリプトと将来のスクリプトを$path
。
答え2
考えられる解決策の1つ:
(read FILE_NAME; scp "$FILE_NAME" [email protected]) <<< some_file
答え3
シェルまたはそれに対応する端に追加します.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
exit
答え4
いいえ、パラメータをシェルスクリプトにラップしない限り、パラメータの順序を変更することはできません。ただし、次の作業は可能です。
R='[email protected]'
scp some_file $R
scp other_file $R
...