你如何将所有文件从上一个目录移动到密码?

iam*_*max 6 linux ubuntu

如果我输入

cd - 
Run Code Online (Sandbox Code Playgroud)

在命令行中,我转到之前所在的位置。我想做一些类似的事情(显然下面的行实际上不起作用):

mv -/* .
Run Code Online (Sandbox Code Playgroud)

将上一个目录中的所有内容复制到我当前所在的位置,而无需明确键入整个上一个目录。这可能吗?(在 Ubuntu 16.04 上?,使用 bash)

Dav*_*ill 11

如何在脚本的命令行中引用我所在的上一个目录?

几种不同的方式:

  • 使用$OLDPWD变量

    资料来源:Bash - $OLDPWD | bash 教程

  • 使用-快捷方式前缀~

    ~-

    波浪号扩展

    如果单词以未加引号的波浪号字符 ('~') 开头,则直到第一个未加引号的斜杠(或所有字符,如果没有未加引号的斜杠)之前的所有字符都被视为波浪号前缀。如果没有引用波浪号前缀中的任何字符,则波浪号后面的波浪号前缀中的字符将被视为可能的登录名。如果此登录名是空字符串,则代字号将替换为 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)