【问题标题】:count the number of files copied recursively using aws cli commands计算使用 aws cli 命令递归复制的文件数
【发布时间】:2017-03-08 22:18:42
【问题描述】:

有人可以帮助我计算仅从一个父对象复制到另一个父对象的文件数。例如

1. src/folder1/some1.txt    
2. src/folder1/folder1_1/some1.txt
3. src/folder2/folder2_1/some2.txt
4. src/folder4/folder4_2/some3.txt
5. src/folder4/folder4_1/some4.txt

将它们复制到dest 文件夹

所以,当我这样做时

aws s3 cp s3://src/* s3://dest/ --recursive

我需要计算复制的文件数。

【问题讨论】:

  • 它必须是原始 cp 命令还是您会采用使用 findfor 循环的解决方案?
  • @MadPhysicist,我只能使用 cp,它是项目的一部分,我需要计算给定文件夹位置复制的文件数量。谢谢
  • 去往 A) 的 dest 是空的吗?或者 B) 从不包含与被复制的文件同名的文件?
  • @MadPhysicist,dest 确实包含与被复制的名称相同的名称,但想法是覆盖它们。
  • 这使得计算您复制的文件数量变得更加困难,除非您可以检查时间戳。

标签: bash amazon-s3 aws-cli


【解决方案1】:

假设我们在 S3 存储桶中有 mp3 文件,路径如下: bucket-name/path/to/files 然后cmd aws s3 ls bucket-name/path/to/files --recursive | grep 'mp3' | wc -l 将输出该路径中所有 mp3 文件的计数,即使它们存在于目录中。

【讨论】:

    【解决方案2】:

    我能想到的最简单的方法是依靠cp -v`source' -> `dest' 之类的格式打印它复制的每个文件这一事实:

    cp --recursive --verbose s3://src/* s3://dest/ | grep -F '->' | wc -l
    

    grep 将为找到 -> 的每一行输出一些内容,wc 将计算行数,这将为您提供复制的总数。

    【讨论】:

    • 不,AWS 方面没有。最多,这些消息:-“上传:../../../../tmp/BashPlayArea2/s3:/dineshdummybucket01/folder3/sample1.txt 到 s3://amp.de.data/playarea/ dinesh/folder1/sample1.txt"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多