2009-02-19 56 views
0

我一直無法移動到名稱中帶有空格的目錄,但是我只是認爲這是Cygwin的問題並解決了它。如何將此路徑傳遞給bash函數?

然後我發現我可以創建符號鏈接到那些使我可能認爲它不是Cygwin的目錄。然後我記得我創建了一個別名cd將列出該目錄的內容,看到這樣的:

cdls { cd $1; ls; } 
alias cd='cdls' 

所以,問題是,當我嘗試這個失敗:

$ cd /cygdrive/c/Program\ Files/ 
bash: cd: /cygdrive/c/Program: No such file or directory 

我可以看到,空間導致路徑被分成多個參數,但我怎樣才能再次將它們結合在一起?

回答

0

貌似我只需要解釋這個問題的答案來找我。我的解決方案是:

cdls() { cd "$*"; ls ; } 
alias cd='cdls' 

很簡單。

3

報價是:

cdls { cd "$1"; ls; } 

在bash引用可能會很麻煩,因爲有解釋的多層次的,但它通常只是一個玩它有點問題。

+0

+1:引用所有shell腳本中的所有路徑。總是。 – 2009-02-19 11:05:53

+0

是的。它們可能對解析器是可選的,但不適用於我! – womble 2009-02-19 11:08:54

1

嘗試:

cdls() { cd "$1"; ls; }