如果我输入
cd -
在命令行中,我转到之前所在的位置。我想执行类似以下操作(显然下面这行实际上不起作用):
mv -/* .
将所有内容从上一个目录复制到我当前所在的位置,而无需明确输入整个上一个目录。这可能吗?(在 Ubuntu 16.04 上?,使用 bash)
答案1
如何在脚本的命令行中引用我所在的前一个目录?
有几种不同的方法:
使用
$OLDPWD
变量要使用
-
快捷方式,请在其前面加上~
~-
波浪号扩展
如果单词以未加引号的波浪号 ('~') 开头,则所有字符直到第一个未加引号的斜杠 (或所有字符,如果没有未加引号的斜杠) 都被视为波浪号前缀。如果波浪号前缀中的任何字符都没有加引号,则波浪号后面的波浪号前缀中的字符将被视为可能的登录名。如果此登录名为空字符串,则波浪号将替换为 HOME shell 变量的值。如果 HOME 未设置,则将替换为执行 shell 的用户的主目录。否则,波浪号前缀将替换为与指定登录名关联的主目录。
如果波浪号前缀是 '~+',则 shell 变量 PWD 的值将替换波浪号前缀。如果波浪号前缀是 '~-',则将替换 shell 变量 OLDPWD(如果已设置)的值。
例子:
$ ls
bin sh.exe.stackdump test test.txt
$ cd test
$ ls
test.sh
$ ls $OLDPWD
bin sh.exe.stackdump test test.txt
$ ls ~-
bin sh.exe.stackdump test test.txt
$