use*_*505 6 command-line shell alias cd-command symlink
我正在寻找一种简单的方法来导航到跨越多个硬盘驱动器的目录,并希望在终端中设置与快捷方式等效的内容。
在 Windows 中,我将使用mklink
并创建符号链接来跳转到目录,或者创建连接以将位置附加到当前文件路径的末尾。
由于这实际上只是关于导航,因此它也不需要是链接或任何东西,也许我可以设置一些环境变量以便我可以cd $myDir
(最好)。
这样的事情是可能的,还是我真的需要更好地学习我的目录?
D_B*_*Bye 10
熟悉您的文件系统布局是成为合格用户的全部组成部分 - 任何时候您都牢记这一目标,这不会浪费时间。但是,话虽如此,您确实可以更轻松地在文件系统中移动。请注意,在 Linux/UNIX 中,无论有多少设备组成您的存储,文件系统都显示为单个树,这与在 Windows 中表示每个“驱动器”(物理或逻辑,取决于您的配置)不同,在默认配置,由一个独立的树。
有很多方法可以解决这个问题。当然可以设置一堆 shell 变量,每个变量都指向不同的目录。发出cd $SomeDir
将导致 shell 扩展变量$SomeDir
并在命令行中替换它,以便当它最终运行时,cd
接收存储在变量中的目录的名称。这可能是最简单的方法,如果您使用绝对路径填充 shell 变量,它应该可以在文件系统中的任何位置工作。
您还可以使用符号链接到目标目录(大多数 UNIX 不支持到目录的硬链接)。但是,要使其有效,您仍然需要在路径参数中提供足够的信息以允许内核解析符号链接。也就是说,您需要提供符号链接的绝对路径,或足够的相对路径以允许内核找到链接,以便它可以跟随它。
另一种方法,可能可用也可能不可用,具体取决于您的 shell,是使用 shell 的cdpath
功能。这是支持bash
,zsh
,tcsh
和undoudtedly等。使用这种技术,您可以将环境变量设置CDPATH
为以冒号分隔的目录名称列表,在运行cd
. 如果 上的目录之一$CDPATH
包含名称与传递给 的子目录匹配的子目录cd
,shell 将更改其当前工作目录。例如,如果CDPATH
contains /usr/local
,并且如果您的系统有一个目录/usr/local/www
,则发出cd www
将查找 的内容$CDPATH
,尝试查找/usr/local
被调用的子目录www
,如果存在,则将其当前工作目录更改为/usr/local/www
. 请注意,shell$CDPATH
按照指定的顺序搜索目录,因此如果$CDPATH
包含多个目录,这些目录包含您作为参数传递给 的子目录cd
,则第一个匹配将获胜。这让我经常出局,以至于我不再是我们cdpath
。
小智 5
您可以设置一些别名,例如:
$ alias abc="cd /home/user/Desktop/Folder"
Run Code Online (Sandbox Code Playgroud)
要长期存储这些内容,请将它们添加到您的 .bashrc 文件中。
如果您只是在寻找导航,这将起作用 - 但是如果您想编写任何脚本,上面的“abc”将没有任何用处。
我个人认为从长远来看,学习和记住目录结构的[相关部分]可能会很容易。太多的别名只会让您需要记住更多的东西,而且它们无法在您可能需要及时使用的不同计算机上工作。
归档时间: |
|
查看次数: |
17470 次 |
最近记录: |