当前目录的命令行快捷方式类似于〜用于主目录?

当我在终端窗口中使用cp或move命令时,我目前正在某个文件夹中使用bash。

NES@server:~/Desktop/dir1$ 

现在我想从这里~/anotherdir/dir2将文件复制到bash(dir1)中当前选择的文件夹中我会使用命令

 cp ~/anotherdir/dir2/file ~/Desktop/dir1 

是否存在一个快捷字符串来引用当前选择的目录? 所以在这个例子中我不必提供目标目录的完整路径,但命令知道它应该使用bash中当前选择的目录? 即〜代表主目录?

您当前的目录是. 。 所以, cp /foo/fam/foo . 将文件复制到当前目录。

“one directory up”或当前工作目录的父目录的类似结构是两个点,即.. (谢谢@djeikyb。)

所以,从/usr/house/firstfloor/basement ,cd ..将你带到/usr/house/firstfloor

在同一个例子中(从/usr/house/firstfloor/basement ,命令cd ../..将带你到/usr/house

您还可以使用带有echo $PWD来获取当前目录:

 echo $PWD 

顺便说一下, $OLDPWD会给你以前的目录。 (在bash你也可以通过输入cd -来达到。)

您可以使用$(pwd),它将解析为pwd命令的输出。

例:

 echo $(pwd) 

./表示当前目录。 所以你可以使用命令cp ~/anotherdir/dir2/file ./这会将文件“file”复制到当前的工作目录中。

要将当前目录用作目标目录,请使用单个点’ .

答案很长

使用您的示例,您可以键入: cp ~/anotherdir/dir2/file .

看点...../../目录名称,将以下命令复制并粘贴到终端中:

 mkdir a && mkdir a/b && mkdir a/b/c && mkdir a/b/c2 cd a/b/c cp /etc/default/grub . cp /etc/default/grub .. cp /etc/default/grub ../c2 cd ../../ tree 

tree命令的输出如下所示:

 . └── b ├── c │  └── grub ├── c2 │  └── grub └── grub 3 directories, 3 files 

这个. 在树输出的顶部表示新的当前目录a ,它是我们使用cd ../../命令导航到a/b/c的祖父。 在下面我们看到子目录a/ba/b/ca/b/c2

逐行分析

首先,我们使用&&将多行连接在一起,在一行上创建了4个目录。

然后我们更改到目录a/b/c ,这是以下复制命令的当前目录:

  • 在第一个复制命令( cp )中,我们将目标设置为当前目录( c.
  • 在第二个复制命令中,我们使用..将目标设置为父目录( b )。
  • 在第三个复制命令中,我们使用../c2将目标设置为兄弟目录( c2

然后,如前所述,我们将当前目录更改为a并运行tree命令以显示aa所有目录和文件。

清理

完成后,我们删除三个目录和文件:

 cd ~/ rm -r tree 

当前目录的环境变量是$ PWD

 echo $PWD 

您可以使用点( . ), ~+ 波浪扩展 , pwd命令或$ PWD变量来表示当前工作目录(CWD)。 所有这些命令都可以做到:

  1. mv file_old_dir .
  2. mv file_old_dir ~+
  3. mv file_old_dir $(pwd)
  4. mv file_old_dir $PWD

是(正如其他人所说),当前目录是“。”,这就是为什么你可以用./script从当前目录启动程序/脚本的原因(只是脚本不起作用,除非。不是PATH的一部分,不建议使用虽然)。 使用$ PWD或$(pwd)有点矫枉过正,即使其他人提到使用单点字符更短,肯定:)“..”是父目录,肯定“/”是根目录。 另外很高兴提到“cd – ”会将您放在您更改cwd(当前工作目录)之前的上一个目录中。 它在日常工作中也很有用。 在命令行中没有任何其他命令的单个“cd”命令将使您进入“〜”(您的家)。