【问题标题】:Is there a way to add a time stamp in all file names in a folder?有没有办法在文件夹中的所有文件名中添加时间戳?
【发布时间】:2016-09-09 01:40:53
【问题描述】:

我目前在 linux EC2 实例中使用 aws cli 将文件从文件夹移动到 s3 存储桶。 我希望将文件移动到当前时间,甚至更好,在日期创建的文件在他们的名字中。那可能吗? 这是我的命令:

aws s3 mv /home/wowza/content/ s3://bucket/folder/ --recursive

它不一定是 aws cli 命令。可以是重命名文件夹中所有文件的命令,然后我运行 aws s3 命​​令。

【问题讨论】:

  • 可能,但由于您没有向我们提供有关您在何处运行此程序(例如操作系统)的任何详细信息,我们无法为您提供帮助。
  • 哦,好的,抱歉。它是Linux。这是我通过 ssh 访问的 EC2 实例。
  • 当您可以简单地在文件所属的文件周围应用适当的元数据时,为什么要更改名称。
  • 因为我需要用不同的名称上传它们,这样它们就不会覆盖已经上传的那些。另外,我想要名称中的日期。
  • 一个全新的存储桶将是矫枉过正。您可以简单地使用时间戳前缀。您可以使用 bash 生成时间戳。 aws s3 mv /home/wowza/content/ s3://bucket/$(date +"%s")/folder.

标签: bash amazon-s3 aws-cli


【解决方案1】:

您可以重命名#bash 中的文件(使用 for),然后上传到 AWS s3。

for f in test/*; do TIMESTAMP=$(date +%s); FILENAME=${f%.*}; EXTENSION=${f##*.}; NEWNAME="$FILENAME-$TIMESTAMP.$EXTENSION"; mv $f $NEWNAME; done

【讨论】:

  • 这只是一个小时,然后是一些没有意义的数字。
【解决方案2】:

我了解到 linux 不会记录创建时间,但我可以将当​​前日期添加到我的所有文件中,如下所示:

for f in test/*;做 mv -- "$f" "$f-$(stat -c %Y "$f" | date +%Y%m%d)"; 完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    相关资源
    最近更新 更多