如何仅删除HDFS指定目录下的文件而保留子目录?
如何删除HDFS目录下的文件但保留子目录
可以实现这个需求,以下是两种可靠的方法:
方法1:直接利用hdfs dfs -rm默认行为
hdfs dfs -rm命令默认仅处理文件,不会删除目录(需添加-r参数才会递归删除目录)。你可以直接执行:
hdfs dfs -rm /hdfs/test/folder/*
执行后,目标路径下的所有文件会被删除,子目录会因缺少-r参数被跳过(命令会输出类似rm: /hdfs/test/folder/data': Is a directory`的提示,但不影响文件删除操作)。
方法2:用hdfs dfs -find精准匹配文件
如果想避免目录相关的报错提示,或者需要更精准的控制,可结合find命令:
hdfs dfs -find /hdfs/test/folder -maxdepth 1 -type f -exec rm {} \;
参数说明:
-maxdepth 1:限制查找范围仅为目标目录的直接子项,不深入子目录-type f:仅匹配文件,排除目录-exec rm {} \;:对找到的每个文件执行删除操作
该命令能无报错地精准删除目标目录下的所有文件,同时完整保留所有子目录及其内部内容。
内容的提问来源于stack exchange,提问作者Atum
相关产品推荐
相关产品推荐

