Fzf脚本用于切换到带有空格的目录中。

9 浏览
0 Comments

Fzf脚本用于切换到带有空格的目录中。

大家好,我试图使用fzf创建一个脚本,通过在目录中搜索文件名来进行cd操作。

fcd(){
    cd $(find | fzf ) 
}

但是当文件名包含空格时,会出现错误,因为它会将其拆分成两部分。


编辑:

感谢

cd "$(...)", not cd $(...); the >quotes are mandatory. –

Charles Duffy

那么有人可以帮助编写一个使用fzf进行cd到带有文件名的目录的脚本吗?


编辑之前的实际问题 V

经过多次搜索和修改,我最终得到了以下代码:

cd $(fzf| awk '{print "\047"$0"\047"}'|xargs dirname | awk '{print "\047"$0"\047"}')

以文件树为例:

a
└── b
    └── c d
        ├── e.txt
        └── f g.txt

如果我们将上述脚本中的cd更改为echo,并搜索'f g.txt',它将正确打印出'a/b/c d',如果我们键入cd 'a/b/c d',它将进入该目录。但是,当将两者结合起来并像上面的脚本那样运行时,会出现以下错误:

bash: cd: too many arguments

无论我搜索什么,我都得到的解决方案是cd $(find . -d |fzf),但这不是我需要的,我想要搜索文件名并进入其父目录。

提前谢谢大家 🙂

0