加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

帮助使用xargs将多个文件名传递给shell脚本

发布时间:2020-12-15 22:12:37 所属栏目:安全 来源:网络整理
导读:有人能告诉我正确使用xargs吗?或者如果不是xargs,我应该使用什么unix命令? 我基本上想要为输入 localfile,第三个输入参数输入多于(1)的文件名. 例如: 1. use `find` to get list of files2. use each filename as input to shell script shell脚本的用法
有人能告诉我正确使用xargs吗?或者如果不是xargs,我应该使用什么unix命令?

我基本上想要为输入< localfile>,第三个输入参数输入多于(1)的文件名.

例如:

1. use `find` to get list of files
2. use each filename as input to shell script

shell脚本的用法:

test.sh <localdir> <localfile> <projectname>

我的尝试,但不工作:

find /share1/test -name '*.dat' | xargs ./test.sh /staging/data/project/ '{}' projectZ ;

编辑:
经过大家的一些输入并尝试-exec后,我发现我的< localfile>带有find的文件名输入也给了我完整的路径. /path/filename.dat而不是filename.dat.有没有办法从find中获取basename?我认为这必须是一个单独的问题.

解决方法

我在这里只使用 find -exec

% find /share1/test -name '*.dat' -exec ./test.sh /staging/data/project/ {} projectZ ;

对于/ share1 / test下的每个.dat文件,这将使用您的三个参数调用./test.sh.

xargs将打包所有这些文件名并将它们传递给./test.sh的一个调用,这看起来不像你想要的行为.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读