如何将xargs输出通过管道传输到命令

guykilcj  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(225)

我正在使用hdfs find工具将超过一定时间的文件归档到另一个目录中。稍后我将压缩此目录。注意,我想保持目录结构,因此我必须执行mkdir和move,而不是简单的move。
下面是命令在我的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/ 然后移动 file1.txt 在它下面。
移动失败,错误如下:
mv:%':没有这样的文件或目录 它创建一个目录作为/archiveData/tmp/$DATE.而不是/archiveData/tmp/$DATE/user/`

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题