是否有一种等效的方法来记住已安装卷上的目录,例如 DOS

Ric*_*ing 5 command-line filesystems directory cd-command

不久前,我从纯 Windows 环境转向使用 Windows 和 Mac。

虽然我慢慢习惯了我的 Mac 并爱上了它,但还是有一些事情让我感到沮丧。

其中之一是文件系统上只有 1 个工作目录。

对于那些只运行 Unix 的人来说,这可能看起来很奇怪,但请按照我在 Windows 上的经验来理解。

我有 C:(程序)、D:(数据)、E:(CD/DVD)和 F:&G:(USB 密钥)。

如果我输入...

CD /D F:\Dir1\Dir2
CD /D D:\Dir3\Dir4
F:
CD
D:
CD
Run Code Online (Sandbox Code Playgroud)

假设这些都是有效路径,输出将是......

F:\Dir1\Dir2
D:\Dir3\Dir4
Run Code Online (Sandbox Code Playgroud)

这表明我可以在“驱动器”之间进行交换,并获得每个驱动器的最后一个工作目录。

当您想将内容从一个驱动器复制到另一个驱动器而无需键入整个路径时,这非常有用。

您可以转到目录,验证其内容,切换到目标驱动器/目录,然后启动复制...

COPY F:*.* D:.
Run Code Online (Sandbox Code Playgroud)

例如。

对于我的 Mac,虽然我可以使用带有 2 个 Finder 选项卡的 UI,但我仍然希望能够使用命令行。

是否有等效的方法让挂载的文件系统记住并公开该文件系统上的最后一个工作目录?

目前它是“完全输入整个命令”的方法。

Jan*_*nis 6

你应该知道,Windows的方式(实际上是相当的DOS方式)是具有的后果很难映射到由字符(所代表的那些低级别的“设备” A:C:等等)。

Unix(基本上)只有一个目录树,并且您可以比在 DOS 上更统一地访问它。您有多种访问文件系统的可能性。您可能在 DOS 世界中知道的一种是图形化的、面向窗口的;参见例如xfe一位候选人。另一种更“本机”的访问是通过 shell。不同的外壳具有不同的功能。您可能希望(对于大量交互使用)查看tcsh,但在常用的 POSIX shell(bash, ksh, zsh)中您确实有工作目录的概念。您可以在具有cd特定变体 is或相应波浪号表达式(类似于上述)的目录之间导航。有了这些,你可以说,cd -以切换到前一个。从一个目录中,您可以使用任一预定义的 shell 变量访问前一个目录$OLDPWD ~-cd -cp ./* ~-. 在ksh还没有一个更强大cd,可以很容易以不同版本的树各自相同子目录之间跳转; 例如,cd gawk-3.1.6 gawk-4.1.2从这些变体的任何子目录中跳转到相应的另一个。在某些 shell 中,还有两个命令pushdpopd命令可用(本地或通过库)来记住您要重新访问的目录。然后是 的概念CDPATH,允许您跳转到常用目录而无需完全指定完整路径。- 我写了所有关于更改目录的内容,因为它是充分利用我之前在 shell 命令中提到的内容的基础。如果没有提到的命令和路径完成功能,描述将是不完整的;通常与$OLDPWD或 的基础。~-Tabkey 你可以完成命令,这样即使你明确地“写”了路径,shell 也会帮助你很快地做到这一点。最后但并非最不重要的是 shell 历史;您可以访问以前键入的命令,可以根据需要编辑和/或重新调用它们。


mic*_*has 4

您的问题是关于 bash 的功能,它可能是您用作命令行的 shell。

对于切换部分,您可以使用cd -切换回上一个目录。

如果你想在命令中引用以前的目录,你可以$OLDPWD这样使用:

 cp $OLDPWD/* .
Run Code Online (Sandbox Code Playgroud)

也看看help pushdhelp popd一般man bash