因此,该命令ls似乎以某种方式向我显示了目录中的两个相同文件。
$ ls -Blah /System/Library/LaunchDaemons
total 32                                                              
drwxr-xr-x  266 root  wheel   8.8K Jun 18 10:41 .
drwxr-xr-x   79 root  wheel   2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r--    1 root  wheel   715B Jun 18 10:36 tftp.plist
-rw-r--r--    1 root  wheel   715B Jun 18 10:35 tftp.plist我可以移动,重命名,编辑等其中一个文件,但另一个似乎不存在。bash选项卡补全甚至显示相同的文件。
例如,输入以下内容,然后点击 TAB
$ sudo mv /System/Library/LaunchDaemons/tftp
tftp.plist   tftp.plist如果我重命名文件:
$ sudo mv /System/Library/LaunchDaemons/tftp.plist /System/Library/LaunchDaemons/tftp.plist.derp选项卡补全仍显示文件:
$ ls -Blah /System/Library/LaunchDaemons/tf
tftp.plist       tftp.plist.derp 但是原始的,未修改的文件不会显示为“ ls”
$ ls -Blah /System/Library/LaunchDaemons/tftp.plist
ls: /System/Library/LaunchDaemons/tftp.plist: No such file or directory但是,如果我只是按照上面的第一个代码段列出文件,请注意:
$ ls -Blah /System/Library/LaunchDaemons
total 32                                                              
drwxr-xr-x  266 root  wheel   8.8K Jun 18 10:41 .
drwxr-xr-x   79 root  wheel   2.6K Mar 31 12:28 ..
[redacted]
-rw-r--r--    1 root  wheel   715B Jun 18 10:35 tftp.plist
-rw-r--r--    1 root  wheel   715B Jun 18 10:36 tftp.plist.derp知道这里发生了什么以及如何摆脱此幻影文件吗?
这是一台运行OS X的Mac,如果添加了任何问题信息。我在用sed在疯狂开始之前就在这个文件上。
编辑
我使用了blah和Blah ls标志,但表观输出没有变化。
编辑2
评论中要求的其他信息:
$ echo tftp* | xxd
0000000: 7466 7470 2e70 6c69 7374 2020 7466 7470  tftp.plist  tftp
0000010: 2e70 6c69 7374 2e64 6572 700a            .plist.derp.更多:
$ printf '<%q>\n' tftp*
<tftp.plist\ >
<tftp.plist.derp>更:
$ locale                                                                                                                      │-rw-r--r--    1 root  wheel   495B Sep  9  2014 org.net-snmp.snmpd.plist
LANG="en_US.UTF-8"                                                                                                            │-rw-r--r--    1 root  wheel   498B Jan 15 23:15 org.ntp.ntpd.plist
LC_COLLATE="en_US.UTF-8"                                                                                                      │-rw-r--r--    1 root  wheel   1.0K Nov 13  2014 org.openldap.slapd.plist
LC_CTYPE="en_US.UTF-8"                                                                                                        │-rw-r--r--    1 root  wheel   572B Sep  9  2014 org.postfix.master.plist
LC_MESSAGES="en_US.UTF-8"                                                                                                     │-rw-r--r--    1 root  wheel   238B Sep  9  2014 shell.plist
LC_MONETARY="en_US.UTF-8"                                                                                                     │-rw-r--r--    1 root  wheel   941B Sep  9  2014 ssh.plist
LC_NUMERIC="en_US.UTF-8"                                                                                                      │-rw-r--r--    1 root  wheel   260B Sep  9  2014 telnet.plist
LC_TIME="en_US.UTF-8"                                                                                                         │-rw-r--r--    1 root  wheel   715B Jun 18 10:36 tftp.plist
LC_ALL="en_US.UTF-8"注意
下面的答案使我看到名称中有一个尾随空格。
                
                6
              
                  可能是名称中有尾随空格吗?
                
                
                  
                    —
                    fredtantini 2015年
                    
                  
                
              
                  嗯...不,可以完成
                
                  
                    —
                    fredtantini 2015年
                    
                  
                
              ls test\ ...如果您使用该ls "*tftp.list*"怎么办?或ls与--show-control-chars?
                
                  您可以运行类似
                
                  
                    —
                    choroba 
                    
                  
                
              echo tftp* | xxd或其他的十六进制转储吗?
                
                  输出是
                
                  
                    —
                    克里斯· 
                    
                  
                
              printf '<%q>\n' tftp*什么?
                
                  由于您的语言环境为
                
                  
                    —
                    Mark Plotnick 
                    
                  
                
              en_US.UTF-8,ls -b因此无论在文件名的中间还是结尾,都不会以任何特殊方式在文件名中显示空格。您可以使用答案(printf,echo)之一,或使用旨在突出显示尾随空白的程序来过滤ls的输出,例如ls -1 tftp* | cat -vet