请问谁能告诉我echo *与ls *的区别吗? 拜谢
echo * 列出所有的文件名
ls *对于文件,显示文件名,对于目录,显示目录里的文件
echo * 会打印所有的命令行参数,*会展开成当前目录下的文件名ls * 会根据终端彩色显示文件和子目录下的文件。
搞清楚 echo 和 ls 两个命令的作用就什么都明白了。echo *和 ls . 还有一拼,和 ls * 简直没法比。
哦 是不是先用*号去匹配当前目录下的所有的的文件名和子目录名然后echo显示所有的文件名ls不只显示当前目录下的文件名还有子目录下的文件呢?
原帖由 hq190725 于 2005-12-12 11:01 发表哦 是不是先用*号去匹配当前目录下的所有的的文件名和子目录名然后echo显示所有的文件名ls不只显示当前目录下的文件名还有子目录下的文件呢?
不是的。ls 会对每个参数做同样的处理:如果参数是一个文件,就显示它的名字,如果参数是一个目录,就显示它里面的文件的名字。搞清楚星号是由 shell 来解释(扩展)的,而不是 ls 或者 echo 来解释的。
echo和ls命令的参数都是 *那这两个命令的输出是什么呢 有什么区别?
原帖由 hq190725 于 2005-12-12 11:15 发表echo和ls命令的参数都是 *那这两个命令的输出是什么呢 有什么区别?
man lsman echo
关键问题就在于,当 shell 在调用指定命令之前,会将参数中单独出现的 * 替换成当前目录下的所有文件名的列表。用 echo '*' 和 ls '*' 就可以看出区别了。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(8)
echo * 列出所有的文件名
ls *对于文件,显示文件名,对于目录,显示目录里的文件
echo * 会打印所有的命令行参数,*会展开成当前目录下的文件名
ls * 会根据终端彩色显示文件和子目录下的文件。
搞清楚 echo 和 ls 两个命令的作用就什么都明白了。
echo *和 ls . 还有一拼,
和 ls * 简直没法比。
哦 是不是先用*号去匹配当前目录下的所有的的文件名和子目录名
然后echo显示所有的文件名
ls不只显示当前目录下的文件名还有子目录下的文件呢?
不是的。
ls 会对每个参数做同样的处理:如果参数是一个文件,就显示它的名字,如果参数是一个目录,就显示它里面的文件的名字。
搞清楚星号是由 shell 来解释(扩展)的,而不是 ls 或者 echo 来解释的。
echo和ls命令的参数都是 *那这两个命令的输出是什么呢 有什么区别?
man ls
man echo
关键问题就在于,当 shell 在调用指定命令之前,会将参数中单独出现的 * 替换成当前目录下的所有文件名的列表。
用 echo '*' 和 ls '*' 就可以看出区别了。