プログラミング

Bash リモートサーバーにファイルをコピーして共有のためのURLを取得する

ローカルファイルをリモートサーバーにコピーしたのち、クリップボードにそのURLをコピーします。テキストファイルやメディアファイルを手早く共有したい場合に便利。
サーバー名は僕の環境のエックスサーバーのものになっていますので、そこらへんは適当に変えてください。


# リモート;remoteにファイルをコピーして共有のためのURLを取得 e.g. images,videos,files,etc sharefile(){ : e.g. sharefile "/mnt/e/_downloads/MOV_0070.mp4" # filepath="/mnt/e/_downloads/MOV_0070.mp4" filepath=$(realpath "$1") cp "${filepath}" "${filepath}.tmp" filedir=$(dirname "$filepath") filename=$(basename -- "$filepath") extension="${filename##*.}" random=$(random|chomp) if [[ $string =~ .*\..* ]] then mv "$filepath" "$filedir/${random}" newFilepath="$filedir/${random}" newFilename="${random}" touch "${filedir}/${filename} is ${random}.is.tag" else mv "$filepath" "$filedir/${random}.$extension" newFilepath="$filedir/${random}.$extension" newFilename="${random}.$extension" # set -x touch "${filedir}/${filename} is ${random}.${extension}.is.tag" # set +x fi rsync -e 'ssh -p 10022 -i ~/.ssh/yuis.key' -r "${newFilepath}" yuis@sv2031.xserver.jp:"~/yuis.xsrv.jp/public_html/data/" mv "${filepath}.tmp" "${filepath}" echo "https://yuis.xsrv.jp/data/${newFilename}" | clip && printf "\n\n${blu}https://yuis.xsrv.jp/data/${newFilename}${end} is clipped.\n\n" }