Questions tagged «timestamps»

时间戳用于以下问题:指定自纪元(19700101T00:00:00)以来的秒数的数据或其他可能的标准,还用于文件名中的(日期)和时间信息。

1
复制文件并附加时间戳
我的脚本有两个问题,该脚本复制文件并为该名称添加时间戳。 cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%T") 上面添加了Test2作为文件名,但我希望它保留原始源文件的文件名(在本示例中为)Test。 cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%r") 另一个问题是当我将%r时间戳记代码添加为时间戳代码时,出现错误,指出目标“ PM”不是目录。我正在尝试将时间戳记为12小时制。

5
获取给定文件的年龄
如何至少在几天之内获得给定文件的期限? 我非常了解ls -lh和类似的命令。我想要可以像这样工作的东西: getfage <FILE> # prints out '12d' (12 days) 另外,这还需要跨平台,因为我也想在Mac OS X下使用它,但是主要的用例是在Linux机器上。 注意 由于Linux不会跟踪创建时间,因此我正在寻找两种解决方案:一种用于mtime(linux),这是上次修改该文件的时间,另一种用于Mac OS X,可以处理mtime或创建时间。

7
回声之前的时间戳
存在一种在echo?前面创建时间戳的更好方法。 目前,我这样做: #!/bin/sh if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device already mounted" else echo `date +%R\ ` "mounting usb device..." mount -t msdosfs /dev/da0s1 /mnt/usb if mount | grep -q /mnt/usb; then echo `date +%R\ ` "usb device successfully mounted" fi fi 输出应如下所示: 10:36 …
12 shell  timestamps  echo 

3
在POSIX sh中执行-nt / -ot测试
即使大多数外壳程序在“ POSIX模式”下运行,内置的test和[实用程序在大多数外壳程序中都具有-nt(“比...更新”)和-ot(“比...更旧”)测试(对于在外壳上使用相同名称的外部实用程序也是如此)我可以访问的系统)。这些测试用于比较两个文件上的修改时间戳。它们的文档化语义在不同的实现中略有不同(关于一个或另一个文件不存在的情况),但是它们不包含在POSIX规范中。为test实用。 他们不结转到test时,从[KornShell]壳去除有条件的命令,因为他们没有被列入工具test内置于历史实现实用sh工具。 假设我想比较/bin/shshell脚本中文件之间的修改时间戳,然后根据一个文件是否比另一个文件新来采取措施,如 if [ "$sigfile" -nt "$timestamp" ] || [ "$sigfile.tmp" -nt "$timestamp" ] then return fi ...除了make(这至少会使脚本的其余部分难以理解)之外,我还可以使用其他什么实用程序?还是我应该假设没有人会在“的历史实现sh” 上运行脚本,或者辞职以编写像这样的特定 shell bash?
11 files  timestamps  posix  test 

5
测试文件名称是否在日期之后修改
我有一个文件名为YYYYMMDD的文件,例如 file-name-20151002.txt 我想确定此文件在2015-10-02之后是否已修改。 笔记: 我可以通过查看的输出来完成此操作ls,但是我知道解析输出ls是一个坏主意。 我不需要查找在特定日期之后标出日期的所有文件,只需要一次测试一个特定文件。 创建文件后,我不担心文件在同一日期被修改。也就是说,我只想知道20151002名称中带有此文件的是否在2015年10月3日或更晚时间被修改。 我使用的是MacOs 10.9.5。
11 bash  files  osx  timestamps 

3
如何以纪元格式设置文件的mtime?
我知道如何以纪元格式获取文件的mtime: stat --format=%Y <file> 但是我无法弄清楚如何以纪元格式设置文件的mtime。touch(1)手册页似乎只接受“时间戳”值(使用月,日,小时,分钟等的或多或少的固定格式)或“人类可读的日期格式大部分为自由格式”。 我应该考虑其他实用程序吗? 谢谢。

4
Linux系统时间暂时跳跃
我在某些(硬件)服务器中看到了一个奇怪的系统时间更改行为:在中/var/logs/syslog,每条日志消息之前的日期时间有时会更改为随机时间,而在下一条消息中会恢复为正常,如下所示: Feb 22 2018 09:09:30 ... Feb 22 2018 09:09:32 ... Jan 13 2610 15:37:42 ... Feb 22 2018 09:09:33 ... Feb 22 2018 09:09:34 ... 如示例中所示,日期时间的突然变化可能长达数百年。 我可以确认带有奇怪时间戳记的日志消息不是来自任何特定的过程,而是可以随机发生的。 两次异常时间更改之间的持续时间在几分钟到几小时之间不等(但是,我怀疑异常时间更改可能会更频繁地发生,但是由于系统日志不是每秒写入一次,因此许多未在系统日志中显示出来)。 另外,由于它发生在多个服务器上,因此我认为这不是硬件问题。 有关服务器的更多信息:它们是一个具有一个控制器和几个计算节点的开放式堆栈安装。每个服务器都有正在运行的ntp服务。控制器配置为从其自己的硬件时钟中抽出时间,并且计算节点服务器从控制器同步时间。请注意,每个服务器都会以自己的速度进行异常的时间更改-看起来“错误的时间”不是通过ntp从控制器同步的。 我怀疑计算节点上的来宾系统(虚拟机)可能会影响其主机系统时间。但这不能解释为什么控制器在不运行任何虚拟机时仍存在相同的问题。 我需要一种检测方法:谁更改了系统时间,它是如何发生的?
11 logs  timestamps  time 

3
stat:文件的修改时间戳
我stat -f %m .bashrc用来获取我的.bashrc在osx上的修改时间。但是,当我在ubuntu上运行相同的命令时,它会吐出错误: stat: cannot read file system information for %m': No such file or directory 是否有兼容的方法来实现这一目标?

2
如何使用来自HTTP的文件作为GNU make中的先决条件?
我想将万维网上的文件用作我的makefile中的先决条件: local.dat: http://example.org/example.gz curl -s $< | gzip -d | transmogrify >$@ 我只想在远程文件比本地文件更新的情况下“迁移”,就像make正常运行一样。 我不希望保留的高速缓存副本example.gz -文件都很大,而且我不需要原始数据。最好我完全避免下载文件。目的是使用-jmake标志并行处理其中的一些。 有什么干净的方法可以解决这个问题?我可以想到一些方法: 保留一个空的虚拟文件,每次重新创建目标时更新 一些使用GNU make的新插件系统的插件(我对此一无所知) 不可知的方式将HTTP服务器安装在本地文件系统中 在深入探讨之前,我想提出一些建议,最好是具体的例子!

4
ls -lt将遵循精确的mtime还是仅遵循近似的mtime直到秒?
ls -l仅显示文件的修改时间戳,最长时间为秒。如果两个文件具有相同的时间戳(最高达一秒),但修改的时间不完全相同,则将ls -lt以准确的mtime的顺序或仅近似mtime的顺序对文件进行排序(直到m秒)(因此,文件之间的顺序可以是任意)?
10 ls  timestamps 

4
确定文件是否已被修改
在Linux(当前使用ext4文件系统)中,如何在不读取文件内容的情况下快速检查文件内容是否已被修改? 该stat命令是推荐的方法吗?我目前正在 $ stat --format "%Y" hello.txt 然后我可以检查相同的命令是否产生相同的输出。如果是这样,我得出结论hello.txt没有更改。 我的感觉是,想要输入更多的参数来更加确定。例如,添加文件大小,文件名等是否可以提供更好的文件“指纹”? 关于这个主题,我记得增量备份程序始终忽略了我曾经拥有的TrueCrypt卷,这可能是因为TrueCrypt确保确保不保留任何元数据更改。我想确实有可能更改所返回的所有数据stat,因此不能保证可以对文件的每次可能修改都进行选择吗?
10 files  timestamps  stat 

3
如何找到两个时间戳之间的差异(以毫秒为单位)?
我是Shell脚本的新手。我的脚本的核心是找出两个时间戳之间的差值,最高可达毫秒。和我一起,我有一个只包含时间戳内容的文件 2012-09-13 15:00:29,290 2012-09-13 15:00:29,297 2012-09-13 15:00:29,428 2012-09-13 15:00:29,447 像这样,我大约有3万条记录,执行脚本时应该不会遇到任何性能问题。当我尝试为此编写脚本时,许多因素都会出现,例如leap年,31天的月份等。 有人可以帮我吗?

5
通用的非bash时间基准替代方案?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 3年前关闭。 为了比较不同外壳之间脚本的运行时间,一些SE答案建议使用bash的内置 time命令,如下所示: time bash -c 'foo.sh' time dash -c 'foo.sh' ... 等,每个要测试的外壳。这样的基准测试无法消除每个shell加载和初始化自身所花费的时间。例如,假设上述两种命令被存储在一缓慢的设备具有早期软盘的读取速度,(124KB /秒), dash(一〜150K可执行程序)将加载大约7倍的速度比bash(〜1M),所述壳加载时间会使time数字产生偏差-这些外壳的预加载时间与加载foo.sh外壳后测量每个外壳下的运行时间无关。 什么是可以在每个Shell中运行的用于脚本计时的最佳便携式和通用工具?因此,上面的代码如下所示: bash -c 'general_timer_util foo.sh' dash -c 'general_timer_util foo.sh' 注意:因为没有可移植的或通用的命令,所以没有外壳内置 time命令。 更好的是,该实用程序还能够对Shell内部命令和管道所花费的时间进行基准测试,而无需用户先将它们包装在脚本中。这样的人工语法会有所帮助: general_timer_util "while read x ; do echo x ; done < foo" 一些shell time可以管理这个。例如bash -c "time while false ; do : …

4
使用CLI按日期将文件移动到其他目录
我要整理的旧硬盘中有大量图片。如果运行ls -l,我注意到所有这些文件的创建日期均为2012年或更早。理想情况下,我想将它们移动到计算机的第二个硬盘驱动器,该硬盘驱动器未设置为自动安装。最好,我可以将某些命令链接在一起,以批处理方式完成所有这些工作。到目前为止,我ls -l | grep -i 2012只在所提供的日期中吐出了2012年的文件ls -l。现在,诀窍是将cp所有这些文件都移到新目录中。我不确定下一步该怎么做,因为每个文件都必须复制。下一组命令是什么?

1
从gzip文件中提取时间戳
我如何知道不用解foo压缩gzip而压缩的文件的原始原始时间戳foo.gz? gzip --verbose --list foo.gz并file foo.gz打印格式化的日期和时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.