[英]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.