如何使用空白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中,没有任何内容在单引号内解释,因此您应该避免使用不常见的字符。