带有通配符或变量的 distcp 目录的设计模式 (glob)

design pattern for distcp directories with wildcards or variables (glob)

我知道 distcp 不能使用通配符。 但是,我需要在更改目录时按计划进行 distcp。 (即仅在星期一等复制 "friday" 目录中的数据),但也从指定目录下的所有项目复制数据。

是否有某种设计模式可以编写此类脚本?

简而言之,我希望能够做到:

hadoop distcp /foo/*/bar/$year/$month/$day hdfs://namespace-foo/replication-dir/

我最终使用了以下函数来访问我需要的目录。

    function get_list_of_directories_for_input_dir {

        local fvar_dirlist=`hadoop fs -ls "" | awk '{print }'`
        local fvar_count=`echo "$fvar_dirlist" | wc -l`
        if [ "$fvar_count" -ge "2" ]; then

                local fvar_len=$(($fvar_count - 1))
                local fvar_dirlist=`echo $fvar_dirlist | tail -n $fvar_len`
                echo "$fvar_dirlist"

        else
                exit 1;
        fi

}