我经常发现自己在两个目录之间循环以执行不同的任务。目录之间并不总是有易于使用的相对路径。因此,必须指定一个本质上是以前的工作目录的目录路径是相当麻烦的。
有没有一个命令可以让我轻松返回到以前的工作目录?
在 bash 中,是否有一种方法可以组合autocd和CDPATH,即转到元素的子目录而无需在目录名称之前CDPATH输入?cd
例如,如果我有这些目录:
\n\n并做
\n\n~$ shopt -s autocd\n~$ export CDPATH=":~/Leute:~/Dinge"\nRun Code Online (Sandbox Code Playgroud)\n\n那么我可以做
\n\n~$ Leute\nRun Code Online (Sandbox Code Playgroud)\n\n并最终进入 ~/Leute 目录(就是这样autocd)
~/Leute$\nRun Code Online (Sandbox Code Playgroud)\n\n我可以做
\n\n~/Leute$ cd Auto\nRun Code Online (Sandbox Code Playgroud)\n\n最终进入 ~/Dinge/Auto (那个CDPATH东西)
~/Dinge/Auto$\nRun Code Online (Sandbox Code Playgroud)\n\n但将两者结合起来似乎不起作用。\n例如,从 ~/Leute 开始,我可以\xe2\x80\x99t 跳转到 ~/Dinge/Auto 而无需显式cd:
~/Leute$ Auto\nbash: Auto: Command not found...\n …Run Code Online (Sandbox Code Playgroud) 按“/”的出现次数对结果进行排序$ find . -name scripts -type d然后选择第一个结果的最佳方法是什么?
我想创建一个函数,该函数将cd指向项目中的公共文件夹。我希望它能够根据您的相对目录进行灵活调整。
因此,如果我有 10 个项目都具有相似的文件夹结构:
~/project-a/project/folder/structure
~/project-b/project/folder/structure
~/project-c/project/folder/structure
Run Code Online (Sandbox Code Playgroud)
我可以:
$ cd ~/project-a
$ cdd structure
Run Code Online (Sandbox Code Playgroud)
并被放入 ~/project-a/project/folder/struct
更新
我无法以任何可预测的方式对结果进行排序,例如:
$ find . -type d -name "themes"
./wp-content/plugins/contact-form-7/includes/js/jquery-ui/themes
./wp-content/plugins/jetpack/modules/infinite-scroll/themes
./wp-content/plugins/smart-youtube/themes
./wp-content/plugins/wptouch-pro/themes
./wp-content/themes
./wp-includes/js/tinymce/themes
Run Code Online (Sandbox Code Playgroud)
我希望该cdd函数能够下降到最接近的结果。在这个例子中,它是./wp-content/themes.
我想知道是否有更简单的方法来选择目录 cd当前目录中。
例如,有没有办法只得到当前目录的编号列表,并能够做到cd 1,cd 2,cd 3,等有一些其他的方式来轻松cd子目录之间在一个人的当前目录?
使用此答案,我在我的.bashrc文件中创建了一个符号链接,以便更轻松地更改到常用目录。
例如
ln -s ~/a/b/c/d/development dev
Run Code Online (Sandbox Code Playgroud)
我可以通过输入将目录从我的home目录更改为目录。我也可以从我的目录进入,这也有效。developmentcd devls devhome
但是,这些命令仅适用于我的home目录。如果我从其他任何地方输入它们,我会收到一个错误提示No such file or directory。
如果我输入cd ~/dev或ls ~/dev它有效。
有人可以解释为什么会这样以及我如何解决它,这样~/当我不在我的家庭目录中时,我就不必包含在路径中。
有时更改目录(通过终端)会启动git进程,该进程会占用100%的 CPU 时间,并且长达 5-6 秒,在此期间我的控制台完全没有响应。
\n\n当我导航到该目录时,并非每次都会发生这种情况,但一天中会发生几次。
\n\n5-7秒后,git进程消失,我进入目录
\n\n有任何想法吗?
\n\n我的~.zshrc在这里
\n\n\xe2\x9e\x9c Config git:(develop) uname -a \nLinux dmitry 4.13.4-200.fc26.x86_64 #1 SMP Thu Sep 28 20:46:39 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux\n\xe2\x9e\x9c Config git:(develop) zsh --version \nzsh 5.3.1 (x86_64-redhat-linux-gnu)\n\xe2\x9e\x9c Config git:(develop) \n\xe2\x9e\x9c Config git:(develop) bash --version\nGNU bash, version 4.4.12(1)-release (x86_64-redhat-linux-gnu)\nRun Code Online (Sandbox Code Playgroud)\n 这在理论上应该只是多余的,因为它更改为当前工作目录。无论如何,在实践中是否有任何场景,此命令可能有用?
我的 USB 磁盘中只有几个文件,名为F:. 我里面的文件很大。我不想将它们移动到我的硬盘上。我想进行一些比较,例如diffUSB 内部的文件和磁盘中的文件之间的比较。
问题是我无法知道USB磁盘路径或如何访问它?好像是在根目录下。但是当我输入cd F进入 FI 时出现错误:
bash: cd: F:: No such file or directory
Run Code Online (Sandbox Code Playgroud)
编辑: 我使用 Ubuntu 18.04 桌面
有什么方法可以获取在终端(osx)中导航的最近“位置”(目录)的列表?我的意思是,我想打开我的终端,输入一些命令,获取我最近去过的 2 或 3 个地方,然后去那里。
就像箭头对最近的命令所做的那样。
是否可以?
如果我有一个很长的当前路径..我想切换到一个目录,路径中只有一个词被其他东西替换..比如使用 maven 时说,我想从主路径切换到测试路径,怎么办我做吗?
前一段时间,我能够做到
$ cd 主测试
在路径中通过 test 替换 main,但不再是..
任何指针...?
cd-command ×10
bash ×6
directory ×2
shell ×2
zsh ×2
autocomplete ×1
fedora ×1
filesystems ×1
git ×1
hard-disk ×1
open-files ×1
performance ×1
pwd ×1
shell-script ×1
symlink ×1
usb-drive ×1