当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-20 22:49 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
在终端下执行 ls `ls`(那个 ` 是键盘上方的数字鍵 1 左边那个按键,而不是单引号!)
输出结果第一行报错,但从第二行开始显示了当前目录下的所有文件(子文件夹中的文件也被递归的显示出来了)
不明白为什么会产生这个结果? :em20


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-20 22:56 
头像

注册: 2007-03-13 11:23
帖子: 1343
送出感谢: 0 次
接收感谢: 0 次
理解上存在讹误,没有递归,才两层。ls -R 才是递归.此外,你的ls是哪个ls,定义alias了把:


_________________
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-20 22:59 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
第一行报的错是: ls: 无法访问主题: 没有该文件或目录
但在我的当前目录下有这个名为“主题"的文件夹,用ls -l命令 能查询出来,它的权限为rwxr-xr-x,但用命令ls 主题 却报错,错误信息也是 ls: 无法访问主题: 没有该文件或目录


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-20 23:01 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
ls,没有定义alias,就是系统的 内建的命令。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-20 23:15 
头像

注册: 2007-03-13 11:23
帖子: 1343
送出感谢: 0 次
接收感谢: 0 次
看看自己的env


_________________
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-20 23:18 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
有文件名中间带IFS了 通常是个空格


_________________
目前负债150多万


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-20 23:59 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
xhy 写道:
有文件名中间带IFS了 通常是个空格

恩,谢谢了,文件命后面跟了个空格,所以报了错。文件名不能有空格吗?

能否再帮我解释下以下两个命令为什么会显示不同的结果:
ls|ls
ls `ls`
管道与引用有点混淆不清了:它们都是把一个命令的输出作为另一个命令的输入吗? :em06


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-21 0:40 
头像

注册: 2007-03-13 11:23
帖子: 1343
送出感谢: 0 次
接收感谢: 0 次
\来转义


_________________
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-21 0:51 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
a | b a命令的结果通过管道传递给b,并不是作为参数,效果相当于b运行后从终端取得输入

b `a` a命令的结果直接作为调用b命令的参数

一个命令不一定同时支持管道和参数,或者对于两个地方的输入行为定义不一样


_________________
目前负债150多万


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-21 21:46 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
太感谢你了:
xhy 写道:
a | b a命令的结果通过管道传递给b,并不是作为参数,效果相当于b运行后从终端取得输入


刚才测试发现如果从终端取得的输入对于a命令毫无意义的话,整个命令a | b还是可以运行成功,不过效果就相当于只执行b命令了。如exit | ls


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-22 15:08 

注册: 2007-03-14 21:41
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
想将ls的返回结果给ls做参数的话,可以这样做

代码:
ls | xargs ls $*


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-23 0:19 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
goomoott2 写道:
想将ls的返回结果给ls做参数的话,可以这样做

代码:
ls | xargs ls $*


请问这个$*怎么解释?


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 怎么理解ls `ls`这个命令?
帖子发表于 : 2008-11-23 0:29 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
Dic4000 写道:
goomoott2 写道:
想将ls的返回结果给ls做参数的话,可以这样做

代码:
ls | xargs ls $*


请问这个$*怎么解释?


代码:
Expands to the positional parameters, starting from one.  When the  expansion  occurs  within  double  quotes,  it
expands  to  a  single  word  with the value of each parameter separated by the first character of the IFS special
variable.  That is, "$*" is equivalent to "$1c$2c...", where c is the first character of  the  value  of  the  IFS
variable.   If  IFS  is  unset, the parameters are separated by spaces.  If IFS is null, the parameters are joined
without intervening separators.


实际上不需要$*,
代码:
ls | xargs ls

就够了


_________________
目前负债150多万


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译