如何将xargs输出传递给命令

时间:2016-07-22 17:05:26

标签: linux bash shell hadoop

我使用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

0 个答案:

没有答案