如何将除一个文件和目录之外的所有文件和目录从本地驱动器复制到hdfs?

cnwbcb6i  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(405)

我有个目录 /home/my_directory/ 包含以下文件和子目录的:

anotherTest.txt  doNotCopy.txt   my_subdirectory/   subdirectory2/   test.txt

如何复制hdfs上的所有文件和目录 doNotCopy.txt 文件?

pxiryf3j

pxiryf3j1#

--copyFromLocal 不提供排除特定文件的方法。您可以执行以下操作:

ls /home/my_directory | grep -v 'doNotCopy.txt' | while read -r fileName ; do 
    eval "hdfs dfs -copyFromLocal -f $fileName /path/to/HDFS/" 
done

现在如果你 ls 你的 /path/to/HDFS/ 您应该在其中获得所需的文件:

hdfs dfs -ls -C /path/to/HDFS/

anotherTest.txt   my_subdirectory/   subdirectory2/   test.txt

如果要排除多个文件或目录

ls /home/my_directory | grep -v 'doNotCopy.txt\|dirDoNotCopy\|anotherTextFile.txt' | while read -r fileName ; do 
    eval "hdfs dfs -copyFromLocal -f $fileName /path/to/HDFS/" 
done

相关问题