在我的.bash_profile中,我有
cd(){ builtin cd $1 ls -F }
将cd更改为cd ls -F。这似乎在很大程度上起作用,但是当我想要cd到一个多字目录时,它不起作用。它认为这两个词是两个独立的输入。为了解决这个问题,我也试过了:
cd "word1 word2"
cd "word1\ word2"
dir=$"word1 word2"
cd "$dir"
并且这些都没有奏效。我需要修改我的CD功能吗?或者我只是忽略了一个聪明的输入法?
答案 0 :(得分:1)
这就是你想要的(我认为):
cd() {
builtin cd "${1-$(echo ~)}" && ls -F
}
请注意以下几点:
引用变量,以便cd 'some dir with spaces'
起作用。
&&
和cd
之间有ls
,因此如果前者失败,后者将不会发生。 (它们可能只是在不同的行上,但即使ls
失败也会运行cd
,cd
关于失败的消息将在ls
中“丢失”的输出。(不知道如何让同一行上的命令工作。))
$1
默认为~
,以便只有cd
按预期工作。