首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么echo命令在从CRLF文件中读取*(星号)时没有列出目录内容?

为什么echo命令在从CRLF文件中读取*(星号)时没有列出目录内容?
EN

Stack Overflow用户
提问于 2018-05-28 17:57:59
回答 1查看 76关注 0票数 1

有两个文件:

file1.txt -在Linux上创建

代码语言:javascript
复制
root@localhost:~# file file1.txt
file1.txt: ASCII text
root@localhost:~# od -c file1.txt
0000000   *  \n

Windowsfile2.txt-在上创建

代码语言:javascript
复制
root@localhost:~# file file2.txt
file1.txt: ASCII text, with CRLF line terminators
root@localhost:~# od -c file2.txt
0000000   *  \r  \n

代码语言:javascript
复制
root@localhost:~# ls
myFile1  myFile2  myFile3

root@localhost:~# echo `cat file1.txt`
myFile1  myFile2  myFile3
root@localhost:~# echo `cat file2.txt`
*

为什么第二个文件中的CR (回车)导致echo命令不列出目录内容,而只打印星号?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 23:51:35

echo *.txt显示以.txt结尾的所有文件相同,echo *$'\r'显示以回车符结尾的所有文件。

因为您没有这样的模式,所以它会逐字显示模式

如果您创建了一些代码,无论是手动创建还是意外运行带有DOS行终止符的脚本,它们都会出现:

代码语言:javascript
复制
$ touch $'foo\r' $'bar\r'

$ echo *$'\r' | hexdump -C
00000000  62 61 72 0d 20 66 6f 6f  0d 0a                    |bar. foo..|
0000000a

(如果没有hexdump,回车符将导致输出重复地覆盖自身,使其看起来已损坏或只匹配了一个文件)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50563714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档