我正在编写一个 ksh 脚本来清理至少 10 天前的 hdfs 目录和文件。我正在终端中测试删除命令,但它一直说这是错误的:
$ hdfs dfs -find "/file/path/file" -depth -type d -mtime +10 -exec rm -rf {} \;
find: Unexpected argument: -depth
我究竟做错了什么?
答案1
该hdfs dfs
命令在不完全兼容 Unix 的特殊 shell 中执行以下命令,其中一些可用的程序类似于 Unix 程序,但其他程序则不然。该find
程序就是其中之一,命令在hdfs中理解的表达式只有以下几种:
-name pattern
-iname pattern
-print
-print0Always
因此,不幸的是,您正在尝试的表达式在 hdfs shell 中不起作用。
来源:hadoop 文档
答案2
Hadoop 2.7 支持这些功能 https://issues.apache.org/jira/browse/HADOOP-8989