使用BASH设置目录中的每个文件的自定义时间并以秒为单位递增

问题描述 投票:1回答:1

我想将目录中每个文件的时间设置为从所讨论的一天的零时开始,然后以递归方式向每个文件添加一秒钟(每次递增)

因此,获取今天的日期和时间2020-06-07 03:28:00,我想按文件名的顺序重设文件的时间,使其从2020-06-07 00:00:00开始,然后向每个文件添加一秒钟,每次递增。我有点知道我需要做什么,但不知道该怎么做,因为我对bash不够熟练。

  1. 我假设有一个for循环,按名称遍历文件,并将每个文件比上一个增加一个]]
  2. 我知道我需要将时间设置为当前日期,然后将时间重置为00:00:00
  3. 我认为touch -d带有“ +1秒”是正确的选项
  4. 我不需要更改文件名,只需更改时间戳
  5. 我只是不知道如何编写代码。

输出将(有效地)用于以下位置的所有文件:

dir
 - file1.txt 2020-06-07 03:29:22
 - file2.txt 2020-06-07 03:27:34 
 - file3.txt 2020-06-07 03:28:03
 - etc

更改为:

dir
 - file1.txt 2020-06-07 00:00:00
 - file2.txt 2020-06-07 00:00:01
 - file3.txt 2020-06-07 00:00:02
 - etc

我正在使用PodcastGenerator,并注意到该软件使用文件的时间戳创建发布日期/时间。这是解决该问题的快速技巧,而不必每次都破解rss.xml文件。从长远来看,我并不关心文件的实际日期/时间,只是能够在Podcast软件中正确订购它们。

关于此,如果有更简便的方法可以从一堆文件中为播客创建rss feed,我很乐意接受建议。我研究了一些,这似乎是目前最简单的解决方案。

我想将目录中每个文件的时间设置为从所讨论的一天的零时开始,然后以递归方式向每个文件添加一秒钟(每次递增),以获取今天的日期...

bash datetime for-loop
1个回答
2
投票

您可以使用date命令处理日期,然后使用touch命令设置时间。

© www.soinside.com 2019 - 2024. All rights reserved.