我输入例如:cp /media/Macintosh
我正在恢复某人的 HD,所以我想获得 Then,Tab以便它能够正确地输入 Macintosh HD 的格式
然后我希望当您按下 Tab 键时它在几个选项中完成......
对于这个例子,有桌面和桌面(旧),我如何选择桌面(旧),当我输入时De
tab tab它会显示为一个选项列表,但我不知道如何选择列表中的第二个选项。
我需要目录“/Desktop (old)/”的正确格式,我可以使用 tab 来实现这一点,但我不知道该怎么做。
现在我有一个新问题:我正在为某人进行数据恢复:
-Ubuntu:~# cp /media/Macintosh\ HD/Users/orlando/Desktop\ \(original\)/VIDEOS\ ESPANOL/ /media/\$G\$\ DATA/Orlando/Desktop/
cp: omitting directory `/media/Macintosh HD/Users/orlando/Desktop (original)/VIDEOS ESPANOL/'
当我输入以下内容时,这就是我的回复:
-Ubuntu:~# cp /media/Macintosh\ HD/Users/orlando/Desktop\ \(original\)/VIDEOS\ ESPANOL/ /media/\$G\$\ DATA/Orlando/Desktop/
cp: omitting directory `/media/Macintosh HD/Users/orlando/Desktop (original)/VIDEOS ESPANOL/'
顺便说一下,我以 root 身份登录。这是什么意思?我该如何修复?
现在我知道了一些事情,而且这个问题很流行:有人知道修改你的方法bash_profile
,以便你可以多次使用 tab 在不同的路径之间循环吗?
对于真正这样做的人来说,正确的答案是:
cd ~/.bash_profile
或者~/.basher
使用 Sublime/TextEditorOfChoice/VIM/echo 打开文件进入文件:
然后复制并粘贴:
bind '"\t":menu-complete'
或者:bind TAB:menu-complete
然后关闭并打开您的终端/bash/命令提示符。
答案1
在 Windows 中,如果您输入Desk
,Tab它将循环显示所有可能的(不区分大小写)匹配项。Ubuntu 的工作方式与此不同(默认情况下)。在 ubuntu 中,如果您输入,De
Tab它将填充到Desktop
,然后您需要告诉它如何区分。
一般来说,在文件名中添加特殊字符(如空格)并不是一个好习惯。有两种方法可以选择文件名为“桌面旧版”,它们是
Desktop\ Old
或者
"Desktop Old"
在第一个选项中,\
充当转义字符,这意味着后面的字符不应被解释为命令的一部分或参数的分隔符,而是解释为前面的同一参数的一部分。第二个选项只是将其放在引号中。
因此,对于你的情况,你需要做的是:
cp De
tab-->cp Desktop
现在您需要在这里输入\
,然后一旦您再次按下 Tab 键,它就会允许您自动完成(old)
。
此外,值得注意的是自动完成后的最终命令将如下所示:
cp Desktop\ \(Old\)
因为括号也是特殊字符,就像空格一样。
答案2
你不用“选择”,只需继续输入。Tab一旦发现两个文件中第一个不同的字符,补全就会停止。因此,使用你的例子,你会看到
$ cd Desktop
Desktop/ Desktop (old)/
$ cd Desktop
您只需继续输入即可。但是,您选择使用包含空格和括号的奇怪名称。这是一个坏主意,因为它使它们更难处理。要输入空格作为文件名的一部分(通常表示单词或文件名的结尾),您需要使用反斜杠 ( \
) 对其进行转义。因此,在这种情况下,您需要输入\
(即\Space) 然后Tab再次点击:
$ cd Desktop
Desktop/ Desktop (old)/
$ cd Desktop\ ##<--- hit Tab again here
它会神奇地完成
$ cd Desktop\ \(old\)/
请注意括号也会被自动转义。
以上是 Ubuntu 默认 shell ( bash
) 的工作方式。其他 shell 允许您Tab再次点击以循环浏览可用选项。例如,bothzsh
和fish
允许您循环浏览并选择所需的选项。两者都在存储库中,因此您可能需要查看它们。