[问题]请教 find ~ -name "crontab" | xargs ls -al 命令的奇怪问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
JIAN
帖子: 63
注册时间: 2007-01-13 14:55

[问题]请教 find ~ -name "crontab" | xargs ls -al 命令的奇怪问题

#1

帖子 JIAN » 2007-12-12 14:06

我在X终端下执行以下命令
find ~ -name "crontab" | xargs ls -al
home目录下是没有crontab这个文件的,但是仍然会执行xargs后面的命令
请问这是为什么?
用find ~ -name "crontab" -exec ls -al {} \;
是不会执行后面exec的命令的
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#2

帖子 iblicf » 2007-12-12 15:04

find ~ -name "crontab" | xargs ls -al

xargs 的 stdin 接收 find 的 stdout ,,, 无论 find 找没找到结果,xargs 都会执行 ..

find ~ -name "crontab" -exec ls -al {} \;

-exec 是 find 命令的参数,find 找到结果才会调用 -exec fork 一个 "ls -al" 进程 ,{} 作为参数替换 ..
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#3

帖子 eexpress » 2007-12-12 15:11

-exec拉。 还有特殊情况使用{}+
● 鸣学
JIAN
帖子: 63
注册时间: 2007-01-13 14:55

#4

帖子 JIAN » 2007-12-12 15:29

谢谢
回复