繁体   English   中英

如何将xargs输出传递给命令

[英]How to pipe xargs output to a command

我正在使用HDFS查找工具将比一定时间旧的文件存档到另一个目录中。 稍后再压缩该目录。 请注意,我想维护目录结构,因此必须执行mkdir并移动,而不是简单的移动。

该命令在我的bash脚本中的运行方式如下:

hadoop jar $jar_location $find_tool -find hdfs://${inputDirs[$x]} -mtime +$days -type f | cut -c 20- | xargs -I % hdfs hdfs dfs -mkdir -p /archiveData/tmp/$DATE`dirname %` && hdfs dfs -mv % /archiveData/tmp/$DATE`dirname %`

我正在尝试从inputDirs中提供的文件夹集中查找比特定时间长的文件。 我得到一个文件,说:

/user/abc/file1.txt 

然后,我将以上内容作为输入传递给xargs。 然后,我想创建一个目录/archiveData/tmp/$DATE/user/abc ,然后将其下的file1.txt移动。

移动失败,并显示以下错误:

mv:`%':没有这样的文件或目录

并创建一个目录为/archiveData/tmp/$DATE. 代替/archiveData/tmp/$DATE/user/abc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM