我想使用 cd 和 ls 将目录更改为Typescript-initial-config-with-eslint/
:
package.json README.md tsconfig.json Typescript-initial-config-with-eslint/
public/ **src/** tslint.json yarn.lock
喜欢:
cd ls | (4° item)
有没有更有效的方法来做到这一点?
答案1
我想你可以使用选择循环:
select dir in *; do cd -- "$dir"; break; done
然而,这实际上比cd
正常使用需要更多的输入,但你可以用它来创建一个函数:
cdls () {
local PS3='cdls>'
select dir in *; do
if [[ -d "$dir" ]]; then
cd -- "$dir"
break
else
printf '%s\n' "You can only cd into a directory" >&2
fi
done
}
首先显示非目录文件也没有多大用处,因为您无法cd
进入它们,所以您可以这样做:
cdls () {
local PS3='cdls>'
select dir in */; do
cd -- "$dir"
break
done
}
答案2
如果您问“我如何cd
访问列表中的第四项ls
?”,那么
cd "$(ls | tail -n +6 | head -n 1)"