Linux 是否有办法将终端中的目录更改为某个位置的目录;索引;?
假设我想更改的所有目录都有很长的名称,因此每次在终端中键入Linux 是否有办法将终端中的目录更改为某个位置的目录;索引;?,linux,terminal,command,Linux,Terminal,Command,假设我想更改的所有目录都有很长的名称,因此每次在终端中键入cd“Lorem ipsum dolor sit amet concertetur adipising elit”都很麻烦,但我调用了ls,知道目录是,比方说,第一个目录。有没有一种方法可以使用类似于cd0的东西进行转换?也就是说,当以与调用ls时的结果相同的方式排序时,我是否可以更改为索引X处的任何目录?没有此类功能。您可以使用tab completion:cd Lor或编写一个函数来实现您所描述的功能: cdn() { loca
cd“Lorem ipsum dolor sit amet concertetur adipising elit”
都很麻烦,但我调用了ls
,知道目录是,比方说,第一个目录。有没有一种方法可以使用类似于cd0
的东西进行转换?也就是说,当以与调用ls
时的结果相同的方式排序时,我是否可以更改为索引X处的任何目录?没有此类功能。您可以使用tab completion:cd Lor
或编写一个函数来实现您所描述的功能:
cdn() {
local n=$1
for d in */
do
(( n-- )) || { cd "$d"; break; }
done
# Error checking left as an exercise
}
@另一个人的答案可能是最好的答案,但你也可以使用这样的脚本:
#!/bin/sh
i=0
for directory in */ .*/
do
i=$(($i+1))
if [ $1 -eq $i ]
then
cd $directory
break
fi
done
脚本将遍历所有目录(包括隐藏目录和/
和./
),并在到达您选择的cd
索引时停止。但是有一个警告(这就是为什么@另一个人的答案可能更好):脚本必须使用
或源代码命令运行(例如:.cd-index.sh3
而不是/cd-index.sh3
)。如果不使用
运行它,它将只更改脚本中的目录