find /home/li/ -ctime 0 |grep 'grub' >$name 为什么不对呢

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

find /home/li/ -ctime 0 |grep 'grub' >$name 为什么不对呢

#1

帖子 873792861 » 2014-11-18 22:04

如题,echo $name 输出的并不是grep 'grub' 的输出信息,而是原先的变量内容。
$name 这个变量为什么没有被赋予找到的那个文件的名称呢?
我知道name=`find /home/li/ -ctime 0 |grep 'grub' ` 可以这样子写。


与此相同,find /home/li/ -ctime 0 |grep 'grub' |xargs cp /home/li/test/,这样写是不对的,我怎么把找出来的那个文件复制到 /home/li/test/ 目录下呢?
守得云开见月明
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: find /home/li/ -ctime 0 |grep 'grub' >$name 为什么不对呢

#2

帖子 eexpress » 2014-11-19 9:03

find xxx yyy -exec mv {} ~/test/ \;
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: find /home/li/ -ctime 0 |grep 'grub' >$name 为什么不对呢

#3

帖子 eexpress » 2014-11-19 9:05

find xxx yyy -exec mv {} ~/test/ \;
● 鸣学
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: find /home/li/ -ctime 0 |grep 'grub' >$name 为什么不对呢

#4

帖子 astolia » 2014-11-19 9:35

给变量赋值的语法是 变量名=变量值 ,而不是搞什么重定向。
获取命令的输出用``
name=`find /home/li/ -ctime 0 |grep 'grub'`

find本身就有文件名匹配的选项,一般没必要再用grep
find /home/li/ -ctime 0 -name "*grub*"
873792861
帖子: 37
注册时间: 2012-01-08 22:54

Re: find /home/li/ -ctime 0 |grep 'grub' >$name 为什么不对呢

#5

帖子 873792861 » 2014-11-20 21:52

看来是我想多了
守得云开见月明
回复