我尝试了所有进入带有空格的目录的方法,但都不起作用。
mkdir "test folder"
尝试 #1
cd "test folder"
**bash: cd: test: No such file or directory**
尝试#2
cd 'test folder'
**bash: cd: test: No such file or directory**
尝试#3
cd test\ folder/
**bash: cd: test: No such file or directory**
尝试#4
TEST=test\ folder
echo $TEST
**test folder**
cd $TEST
**bash: cd: test: No such file or directory**
这是我的 bash 版本:GNU bash,版本 4.2.24(1)-发布(i686-pc-linux-gnu)。难道我的 出了什么问题.bashrc
?
答案1
目录名称中可能存在其他隐藏字符(除了空格......比如 TAB).....
尝试:
cd *folder
或者
cd test*
看看是否有效。
答案2
您可以使用以下ls
开关来检测这些类型的问题:
-b, --escape
print C-style escapes for nongraphic characters
-q, --hide-control-chars
print ? instead of non graphic characters
--show-control-chars
show non graphic characters as-is (default unless program is `ls' and output is a terminal)
-Q, --quote-name
enclose entry names in double quotes
笔记:通常--show-control-chars
默认开启。
例子:
% touch normal_file
% touch "spacy_file "
% touch "ctrl_file^[^\^]"
笔记:第三个文件是通过按下...创建的。
- 按住Ctrl并按下V&3
- 按住Ctrl并按下V&4
- 按住Ctrl并按下V&5
-lb
% ls -lb
total 0
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 ctrl_file\033\034\035
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 normal_file
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 spacy_file\
-l
% ls -l
total 0
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 ctrl_file???
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 normal_file
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 spacy_file
-q
% ls -q
ctrl_file??? normal_file spacy_file
-lq
% ls -lq
total 0
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 ctrl_file???
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 normal_file
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 spacy_file
-lQ
% ls -lQ
total 0
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 "ctrl_file\033\034\035"
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 "normal_file"
-rw-rw-r-- 1 saml saml 0 Jan 13 21:22 "spacy_file "