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