Binary 我想在大型二进制文件上更新atime
在大型二进制文件列表中,我希望将atime更新为当前时间,但不影响ctime或mtime。(这将是一个持续的日常过程) 更新atime,但它也更新我不想要的ctimeBinary 我想在大型二进制文件上更新atime,binary,solaris,Binary,Solaris,在大型二进制文件列表中,我希望将atime更新为当前时间,但不影响ctime或mtime。(这将是一个持续的日常过程) 更新atime,但它也更新我不想要的ctime head -1 foo > /dev/null 工作正常,但由于文件不按“行”划分,因此需要相对较长的时间 以下内容实现了我的目标,即使在400 MB的文件上也能很快工作,但我不确定这是否是实现这一目标的最佳方法。欢迎任何反馈 od foo | head -1 >/dev/null 谢谢, JimRtouch-a
head -1 foo > /dev/null
工作正常,但由于文件不按“行”划分,因此需要相对较长的时间
以下内容实现了我的目标,即使在400 MB的文件上也能很快工作,但我不确定这是否是实现这一目标的最佳方法。欢迎任何反馈
od foo | head -1 >/dev/null
谢谢,
JimRtouch-at
应该可以工作(在我的ext4驱动器上工作)-不确定为什么要同时更改ctime。除了在注释中提到之外,还可以读取单个字节:
od -c -N 1 foo >/dev/null
消除额外的
头
会使它更快一些。如果您在gnu头
上,则头-c1
将只读取文件的第一个字节。。。这应该是非常即时的尝试dd bs=1 count=1/dev/null
POSIX没有指定在运行touch-a
命令后是否应该修改ctime
,这样实现就可以自由地进行修改。Solaris 10区分读取文件(仅更新atime
)和触摸文件atime
,后者也会更新mtime
。在Solaris 11下不再是这种情况,在这两种情况下,只有atime
受到影响。
touch -at <time> <file>
od -c -N 1 foo >/dev/null