相同的命令,不同的结果

时间:2015-05-09 03:36:13

标签: linux bash

我在bash终端看到了一个奇怪的行为。我在终端命令行上运行相同的命令,但得到不同的结果。以下行从我的bash终端窗口复制粘贴:

me@me:~$ ls "/media/me/My Passport/Archive U/‌"
ls: cannot access /media/me/My Passport/Archive U/‌: No such file or directory
me@me:~$ ls "/media/me/My Passport/Archive U/‌"
Backup  Documents  Downloads  Music  Pictures  Videos

我使用向上箭头键(将之前的命令带到当前行)多次尝试这两个命令,结果不会改变。为了确保该命令没有隐藏字符,我选择了两个命令并将其粘贴到spreed表并将每个字符转换为其代码并进行比较。没有区别。我尝试选择每个命令并单击鼠标右键,选择“复制”,再次右键单击,选择“粘贴”。如果我复制粘贴第一个命令,我得到第一个结果。我是复制粘贴第二个命令,我得到第二个结果!!!

有人能说两个命令有什么区别吗?我想没有人能做到!

我告诉你有什么区别。从文本文件中复制并粘贴第一个命令!

我使用的是Ubuntu 14.04。

**更新以确保我的复制过程** 以下行直接从终端窗口的history输出中复制和粘贴:

 2602  [2015-05-09 07:25:20] ls "/media/me/My Passport/Archive U/‌"
 2603  [2015-05-09 07:25:54] ls /media/me/My\ Passport/Archive\ U/
 2604  [2015-05-09 07:26:02] ls "/media/me/My\ Passport/Archive\ U/"
 2605  [2015-05-09 07:26:10] ls "/media/me/My Passport/Archive U/"
 2606  [2015-05-09 07:27:05] ls "/media/me/My Passport/Archive U/‌"
 2607  [2015-05-09 07:28:26] ls "/media/me/My Passport/Archive U/"
 2608  [2015-05-09 07:56:19] ls /media/me/My\ Passport/Archive\ U/‌
 2609  [2015-05-09 07:57:06] ls "/media/me/My Passport/Archive U/"
 2610  [2015-05-09 07:57:15] ls "/media/me/My Passport/Archive U/‌"

1 个答案:

答案 0 :(得分:2)

我将你问题中的代码复制到vim中,看看:

me@me:~$ ls "/media/me/My Passport/Archive U/<200c>"
ls: cannot access /media/me/My Passport/Archive U/<200c>: No such file or directory
me@me:~$ ls "/media/me/My Passport/Archive U/<200c>"
Backup  Documents  Downloads  Music  Pictures  Videos

U + 200c是零宽度非连接器,是一个不可见的字符。我怀疑你在创建问题时复制并粘贴了第一个失败的命令两次。你运行的两个命令确实不同;第一个命令包含从源文件中复制的字符,而在第二个案例中则不会键入字符。