如何使用空白cd进入目录?

我有一个名为“foo bar baz blob”的目录。 我怎么能够

$ cd "foo bar baz blob" 

我试过引用(“和”)和转义空格(\)。它不起作用.Tab-completion也不起作用。

我还必须发出包含空格的文件名参数的命令。 我怎么做? 甚至MidnightCommander(mc)都没有这样做。

编辑

一年后,我终于找到了问题的根源。 我用一个自动列出已更改目录文件的函数重载了内置cd:

 $ type cd cd ist eine Funktion. cd () { if builtin cd $1; then ls; fi } $ cd Interner\ Speicher/ bash: cd: Interner: Datei oder Verzeichnis nicht gefunden $ builtin cd Interner\ Speicher/ $ pwd /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C018%5D/Interner Speicher $ ls Alarms DCIM Movies Notifications Podcasts SmsContactsBackup Android Download Music Pictures Ringtones 

解决方案很简单:我只需要在1美元左右加双引号:

 if builtin cd "$1"; then 

Ooof。 谢谢。

你有三个选择:

  • 使用反斜杠字符转义空格
  • 用双引号( "" )包装目录名称
  • 使用TAB完成

创建目录:

 user@pc:~/testfolder$ ls -l total 0 user@pc:~/testfolder$ mkdir "foo bar baz blob" user@pc:~/testfolder$ ls foo bar baz blob 

方法1:

 user@pc:~/testfolder$ cd foo\ bar\ baz\ blob/ user@pc:~/testfolder/foo bar baz blob$ echo "This works" This works 

方法2:

 user@pc:~/testfolder$ cd "foo bar baz blob"/ user@pc:~/testfolder/foo bar baz blob$ echo "This works, too" This works, too 

方法3:

 user@pc:~/testfolder$ cd foo 

基于您对其他答案的评论:为了访问名为的文件,转义需要按如下方式完成:

 Eric\ Burdon\ -\ Starportrait\ -\ CD\ 1\ \(flac\).cue foo\ bar\ baz\ blob/ 

但是,使用TAB完成可以简化此过程,并避免您必须手动转义空格。

我刚创建了相同的文件夹,在/ home / abed中,使用了tab完成,它工作正常。 见下图。 如果文件夹是在其他位置创建的,则必须先导航到该位置,然后才能将CD刻录到文件夹中。

在此处输入图像描述

那也行。 见图

在此处输入图像描述

用单引号引用你的文件名。

 cd 'foo bar baz literal string' 

在shell中,没有任何内容在单引号内解释,因此您应该避免使用不常见的字符。