将带空格的文件名剪切并粘贴到命令中

将带空格的文件名剪切并粘贴到命令中

当我输入lslocate作为输出时,我得到“ a file.txt”(“a”和“file.txt”之间有一个空格)。

我用鼠标突出显示它,然后用中间的按钮粘贴它。

现在我必须在“a”后面加上 \,以便a file.txt可以在诸如“ ls a\ file.txt”的命令中读取“”,现在如果文件名是某本书的名称,并且该书有很多空格,则修改名称需要时间。有没有办法快速做到这一点?

答案1

您可以在粘贴前添加引文,然后将其关闭。因此,您可以启动命令

ls "

然后粘贴您的文本

ls "a file.txt

然后关闭引文并按回车键

ls "a file.txt"

代替

ls a\ file.txt

如果用引号括住字符串,则不必转义每个空格。

注意:您也可以使用单引号,如果您得到类似名为 $test 的文件,这将防止变量扩展

ls '$test'

不会等同于

ls "$test"

使用空变量时,第二个示例将列出当前目录,而不仅仅是文件 $test

答案2

反斜杠是 shell 用来处理字面后面空格的转义字符。尝试用下划线或破折号替换空格。

答案3

一些终端仿真器(例如,Mac OS X Terminal)有一个命令,用于粘贴带引号的文本。在终端中,它是编辑 > 粘贴转义文本;它会在特殊字符前插入反斜杠。您的终端程序可能有类似的命令。

相关内容