我最近陷入困境,当时我位于一个文件夹内,并且我想cd
进入一个子目录文件夹。该文件夹内只有一个文件夹,这是一个很长的名字。
Home (I am here)
|
|
--> /reallylongnamefolder
有什么办法可以进入该文件夹而不是键入:
cd reallylongnamefolder
我最近陷入困境,当时我位于一个文件夹内,并且我想cd
进入一个子目录文件夹。该文件夹内只有一个文件夹,这是一个很长的名字。
Home (I am here)
|
|
--> /reallylongnamefolder
有什么办法可以进入该文件夹而不是键入:
cd reallylongnamefolder
Answers:
我建议您键入前几个字母并按tab。Bash具有自动完成功能,非常有用。如果仅是当前路径中的目录,只需按即可tab填充整个目录。
输入cd
并按tab两次将显示当前目录中的所有选项。
tab 通常在bash中非常有用,因为您只需一两次按下即可访问几乎所有可执行文件。
cd *
如上所建议,仅当目录在列表中第一且未隐藏时才起作用。如果目录前有字母顺序的文件,cd
则根本不会更改目录。
cd <tab>
足够聪明。
我想我真的想通了
cd *
cd */
但是我没有测试过是否有多个文件和一个文件夹!
正如@Rinzwind在评论中提到的!
假设您有三个长文件夹:
/thisislongfolder1
/thisislongfolder2
/thisislongfolder3
如果您输入文件的第一个字母,则点击tab它会自动完成文件名!疯狂的事情!
因此,在上面的示例中,您可以输入:t tab,它将自动完成:(cd thisislongfolder
然后您自己输入数字)。
或者您可以采取cd t*1
将您带入thisislongfolder1
谢谢林兹温德!
cd r*r
和希望这是唯一的文件夹,开始和有R结尾的。
cd */
可能会解决问题
cd *
失败比成功更多。
cd $(ls -d */|head -n 1)
ls -d */
列出目录,head -n 1
并给出此列表中的第一个目录。
cd
第一个目录,则无法制表符。
为此,我有一个不错的设置,它不仅使我可以将CD cd到〜/ somereallylongfoldername,而且即使在/文件夹中,也可以将其cd到那里
我首先使用的是带有oh-my-zsh的zsh,这也使您无需担心大小写甚至不用键入cd即可进行cd
sudo apt-get install zsh git
curl -L http://install.ohmyz.sh | SH
chsh -s /bin/zsh
打开并编辑位于主文件夹中的.zshrc,而不是隐藏
纳米〜/ .zshrc
然后将以下行添加到文件的底部
export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/
如果您喜欢我的主题,也可以将行更改#ZSH_THEME="robbyrussell"
为ZSH_THEME="pygmalion"
保存并关闭文件,然后重新启动。关闭并重新打开外壳,或者只是打开一个新选项卡并尝试一下
不是,您可以使用Tab键来完成名称,而在ZSH中,您甚至不必输入大小写,您可以键入docu并按Tab键,它将变成〜/ Documents
您可以按索引节点号更改目录。
首先我们找到带有的索引节点ls -il
。
然后
cd $(find -inum directory_inode_number)
扩展王牌的答案:
cd $(ls -d -1 */ |sed -n '1p')
打开目录中的第一个文件夹。可以将第二个目录的“ 1p”更改为“ 2p”。
ls -d -1 -la */
仅列出父目录中的目录。
cd */
或者cd rea*/
不确定是否始终只有1个子目录(如果使用bash,也可以cd rea[TAB]
在其他shell中使用..,但是扩展名称的方法可能有所不同)。如果“ / reallylongnamefolder”是绝对路径,则相同,但前面带有“ /”,例如:cd /rea*/