我正在为get_iplayer制作一个gui。(代码这里)
根据get的手册页,我可以使用
get-iplayer -g `index` --output="/some/desired/folder/"这是可行的,如果我输入绝对路径,即--output="/home/severin/Videos/",我就得到了想要的结果。但是,我想指定一条路径,这对其他用户来说也是可行的,即
--output="~/Videos"
不幸的是,这根本行不通。它在当前目录中创建一个新文件夹,例如,如果我在目录"~/Pictures/“中,上面的命令将创建一个新的目录"/home/severin/Pictures/~/Videos"。
这是get-iplayer的错误还是我做错了?
编辑:get是一个perl命令行程序,用来记录BBC的Iplayer节目.
发布于 2013-09-09 17:54:08
Tilde展开规则非常复杂。
$ echo ~ # normal expansion
/home/amon
$ echo ~/foo # exp at beginning of path
/home/amon/foo
$ echo ~foo # but must be followed by a slash
~foo
$ echo foo/~ # not at the end of a path
foo/~
$ echo foo=~ # expansion ok after non-word char
foo=/home/amon
$ echo foo=~/foo # can extend the path further
foo=/home/amon/foo
$ echo "~" # no expansion inside quotes
~
$ echo -foo=~ # not when token begins with non-word character
-foo=~$HOME变量在所有这些情况下都能工作:
$ echo $HOME; echo $HOME/foo; echo foo/$HOME; echo "$HOME"; echo --foo=$HOME;
/home/amon
/home/amon/foo
foo//home/amon
/home/amon
--foo=/home/amon因此,您希望命令包含--output=$HOME/Videos或等效的内容。请注意,这并不是完全可移植的:虽然英语、面向最终用户的系统可能在主目录中有一个Videos文件夹,但在其他地区或OSes中可能不是这样。
https://stackoverflow.com/questions/18703832
复制相似问题