gpt4 book ai didi

shell - 使用 shell 脚本在目标中创建与源中相同的目录结构

转载 作者:可可西里 更新时间:2023-11-01 16:59:45 25 4
gpt4 key购买 nike

我正在登录到具有如下目录结构的远程服务器-

cd /exp/gc/data/tmp/
ABCD
GED
TROOP

这些目录可能有也可能没有子目录。我的要求是将文件从远程服务器复制到 hadoop(最终目的地),一次一个,保持目录结构与源相同。

例如:来源:

cd /exp/gc/data/tmp/ABCD

现在 ABCD 有 3 个文件和两个子目录。所以我的目标位置 (hadoop) 也应该有相同的目录结构,即 ABCD 必须有 3 个文件和两个子目录。使用 rsync iam 能够复制目录结构,但名称中带有空格或特殊字符的目录不会被复制。代码片段:结果 = $(ssh username@hostname "find/path/-type f")对于 $result 中的文件做rsync -arsv 用户名@主机名/path-source//target-path-tmp/hadoop fs -copyFromLocal/target-path-tmp//hadoop -location/rm -rf/目标路径-tmp/*

最佳答案

我认为你正在寻找的是 rsync,按如下方式尝试:

    rsync -avz foo:src/bar /data/tmp

这会递归地将机器 foo 上的目录 src/bar 中的所有文件传输到本地机器上的/data/tmp/bar 目录中。文件在存档权限中传输,所有权等在传输中保留。此外,压缩将用于减少传输数据部分的大小。

example

关于shell - 使用 shell 脚本在目标中创建与源中相同的目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com