无法 cd 进入 grepped 目录
Unable to cd into a grepped directory
我有一个包含空格和句点的卷,我无法将其放入
bash-4.3$ ll /Volumes
total 8
drwxrwxrwt@ 4 root admin 136 Apr 17 11:08 .
drwxr-xr-x 33 root wheel 1190 Feb 5 19:05 ..
lrwxr-xr-x 1 root admin 1 Apr 17 09:41 Macintosh HD -> /
drwxr-xr-x 4 username wheel 204 Jan 28 02:54 OS X 10.10.2 Update Combo
但尝试以这种方式进行 cd 会产生
bash-4.3$ cd "$(ls /Volumes |grep 'OS X')"
bash: cd: OS X 10.10.2 Update Combo: No such file or directory
正如 RC 在他们的评论中指出的那样,问题是该命令替换的输出是裸目录名称 OS X 10.10.2 Update Combo
,然后用作 cd "OS X 10.10.2 Update Combo"
,但在当前目录。你需要 cd /Volumes/"$(ls /Volumes |grep 'OS X')"
来做你想做的事。
说使用 ls
和 grep
是完全不合适的。更好的解决方案是简单地使用 glob。
cd /Volumes/*"OS X"*
但是,如果不止一个 directory/file 与 glob 匹配,这将失败(就像原来的那样)。
我有一个包含空格和句点的卷,我无法将其放入
bash-4.3$ ll /Volumes
total 8
drwxrwxrwt@ 4 root admin 136 Apr 17 11:08 .
drwxr-xr-x 33 root wheel 1190 Feb 5 19:05 ..
lrwxr-xr-x 1 root admin 1 Apr 17 09:41 Macintosh HD -> /
drwxr-xr-x 4 username wheel 204 Jan 28 02:54 OS X 10.10.2 Update Combo
但尝试以这种方式进行 cd 会产生
bash-4.3$ cd "$(ls /Volumes |grep 'OS X')"
bash: cd: OS X 10.10.2 Update Combo: No such file or directory
正如 RC 在他们的评论中指出的那样,问题是该命令替换的输出是裸目录名称 OS X 10.10.2 Update Combo
,然后用作 cd "OS X 10.10.2 Update Combo"
,但在当前目录。你需要 cd /Volumes/"$(ls /Volumes |grep 'OS X')"
来做你想做的事。
说使用 ls
和 grep
是完全不合适的。更好的解决方案是简单地使用 glob。
cd /Volumes/*"OS X"*
但是,如果不止一个 directory/file 与 glob 匹配,这将失败(就像原来的那样)。