关于find和xargs的传递有关问题,大侠指导~多谢
关于find和xargs的传递问题,请教各位大侠指导~~谢谢
话不多说,上列子
find /home/XXX/cdr -name "*20100412*" |xargs ls -al *20100410.s
-----
该命令打印出来的结论
-rwxr-xr-x 1 zxin10 dba 2381828 Apr 12 05:33 /home/zxin10/cdr/in01_M_830_076962_20100412.s
...
-rwxr-xr-x 1 zxin10 dba 2375448 Apr 12 05:58 /home/zxin10/cdr/in01_M_830_076966_20100412.s
-rwxr-xr-x 1 zxin10 dba 2330384 Apr 10 00:16 in01_M_830_076218_20100410.s
-rwxr-xr-x 1 zxin10 dba 2340901 Apr 10 00:20 in01_M_830_076219_20100410.s
-rwxr-xr-x 1 zxin10 dba 2345586 Apr 10 00:24 in01_M_830_076220_20100410.s
...
-rwxr-xr-x 1 zxin10 dba 2338136 Apr 10 00:28 in01_M_830_076255_20100410.s
-----问题
1.该命令组合没有传递find的结果(内容为/home/zxin10/cdr/in01_M_830_076962_20100412.s),而是直接在cdr目录下过滤20100410(内容位in01_M_830_076220_20100410.s),按照我之前的理解,应该find的文件为0412,传递出来给xargs后如果再进行检查0410,应该是查不到相关的结论才对,请各位大侠判定下这个思路问题出在哪里
2.如果find的匹配关键字无关紧要,是否我的"*20100412*" ,只需要改成“*”或一个更加具体的“in01_M_830_076962_20100412.s”就可以查询到xargs的有效结论了
==谢谢~~
------解决方案--------------------
楼主对xargs命令有误解
应该是管道中加一道grep,取出你想要你文件,然后用xargs来显示详细信息
------解决方案--------------------
问题在于,实际上楼主对ls -al指定了两个参数,一个是*20100410,另一个是find *20100412*的结果,所以最后的结论会显示所有文件名包含20100410或20100412的文件
话不多说,上列子
find /home/XXX/cdr -name "*20100412*" |xargs ls -al *20100410.s
-----
该命令打印出来的结论
-rwxr-xr-x 1 zxin10 dba 2381828 Apr 12 05:33 /home/zxin10/cdr/in01_M_830_076962_20100412.s
...
-rwxr-xr-x 1 zxin10 dba 2375448 Apr 12 05:58 /home/zxin10/cdr/in01_M_830_076966_20100412.s
-rwxr-xr-x 1 zxin10 dba 2330384 Apr 10 00:16 in01_M_830_076218_20100410.s
-rwxr-xr-x 1 zxin10 dba 2340901 Apr 10 00:20 in01_M_830_076219_20100410.s
-rwxr-xr-x 1 zxin10 dba 2345586 Apr 10 00:24 in01_M_830_076220_20100410.s
...
-rwxr-xr-x 1 zxin10 dba 2338136 Apr 10 00:28 in01_M_830_076255_20100410.s
-----问题
1.该命令组合没有传递find的结果(内容为/home/zxin10/cdr/in01_M_830_076962_20100412.s),而是直接在cdr目录下过滤20100410(内容位in01_M_830_076220_20100410.s),按照我之前的理解,应该find的文件为0412,传递出来给xargs后如果再进行检查0410,应该是查不到相关的结论才对,请各位大侠判定下这个思路问题出在哪里
2.如果find的匹配关键字无关紧要,是否我的"*20100412*" ,只需要改成“*”或一个更加具体的“in01_M_830_076962_20100412.s”就可以查询到xargs的有效结论了
==谢谢~~
------解决方案--------------------
楼主对xargs命令有误解
应该是管道中加一道grep,取出你想要你文件,然后用xargs来显示详细信息
------解决方案--------------------
问题在于,实际上楼主对ls -al指定了两个参数,一个是*20100410,另一个是find *20100412*的结果,所以最后的结论会显示所有文件名包含20100410或20100412的文件