如果我输入
cd -
Run Code Online (Sandbox Code Playgroud)
在命令行中,我转到之前所在的位置。我想做一些类似的事情(显然下面的行实际上不起作用):
mv -/* .
Run Code Online (Sandbox Code Playgroud)
将上一个目录中的所有内容复制到我当前所在的位置,而无需明确键入整个上一个目录。这可能吗?(在 Ubuntu 16.04 上?,使用 bash)
Dav*_*ill 11
几种不同的方式:
使用$OLDPWD
变量
使用-
快捷方式前缀~
~-
波浪号扩展
如果单词以未加引号的波浪号字符 ('~') 开头,则直到第一个未加引号的斜杠(或所有字符,如果没有未加引号的斜杠)之前的所有字符都被视为波浪号前缀。如果没有引用波浪号前缀中的任何字符,则波浪号后面的波浪号前缀中的字符将被视为可能的登录名。如果此登录名是空字符串,则代字号将替换为 HOME shell 变量的值。如果未设置 HOME,则会替换执行 shell 的用户的主目录。否则,波浪号前缀将替换为与指定登录名关联的主目录。
如果波浪号前缀是“~+”,则 shell 变量 PWD 的值将替换波浪号前缀。如果波浪号前缀是“~-”,则替换 shell 变量 OLDPWD 的值(如果已设置)。
来源:操作方法:shell 扩展 - Linux - SS64.com
例子:
$ 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
$
Run Code Online (Sandbox Code Playgroud)