我想创建一个bash命令来自动将文件从我的公共Dropbox更新到我的本地计算机。
例如: 我本地/home/john/Directory1/file1.dat上的文件也位于我的保管箱云端,可通过以下链接访问:https://dl.dropboxusercontent.com/u/xxxxxx/Directory1/file1.dat
[顺便说一下,这意味着Directory1 /是我公共/ dropbox目录根目录]。所以我想创建一个名为MyNewFunction的函数:
cd /home/john/Directory1/
MyNewFunction file1.dat
和MyNewFunction将执行:
wget -N https://dl.dropboxusercontent.com/u/xxxxxx/Directory1/file1.dat
[ - N设置为更新并覆盖file1.dat]
因此,我需要选择当前目录名“Directory1”来创建https链接
答案 0 :(得分:0)
只要命令在您拥有该文件的目录中运行,我认为应该这样做:
dirName=$(basename `pwd`)
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dirName}/file1.dat"
答案 1 :(得分:0)
这是更好的
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/$(basename `pwd`)/file1.dat"
答案 2 :(得分:0)
当前目录的完整路径位于PWD
变量中。您可以使用bash的字符串操作来仅获取当前目录的名称:
dir=${PWD##*/}
然后,因为file1.dat
是第一个参数:
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dir}/$1"
所以,函数将是:
MyNewFunction () {
local dir=${PWD##*/}
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${dir}/$1"
}
或者:
MyNewFunction () {
wget -N "https://dl.dropboxusercontent.com/u/xxxxxx/${PWD##*/}/$1"
}