- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 Python 2.7 程序,它必须创建一个具有过去修改日期的符号链接(symbolic link)。我可以使用 os.symlink()
创建链接,并且 os.utime()
声称可以设置文件的访问时间和修改时间,但是当我使用 os.utime()
在我新创建的符号链接(symbolic link)上,它更改符号链接(symbolic link)指向的文件的 atime 和 mtime,而不是符号链接(symbolic link)的 atime 和 mtime。
从 Python 代码设置符号链接(symbolic link)的访问时间和修改时间的最佳方法是什么?
这是一个演示我在做什么的测试程序:
#!/usr/bin/env python2.7
import os, datetime, time
if __name__ == '__main__':
path1, path2 = 'source', 'link'
if os.path.exists(path1):
os.rmdir(path1)
os.mkdir(path1)
if os.path.lexists(path2):
os.remove(path2)
os.symlink(path1, 'link')
lstat1, lstat2 = os.lstat(path1), os.lstat(path2)
print("Before: {path1} atime {sa}, mtime {sm}, {path2} atime {la}, mtime {lm}".format(
path1=path1, path2=path2, sa=lstat1.st_atime, sm=lstat1.st_mtime,
la=lstat2.st_atime, lm=lstat2.st_mtime))
long_ago = datetime.datetime(datetime.date.today().year - 1,1,1,00,00,00)
long_ago_posix = time.mktime(long_ago.timetuple())
print("Desired: {path1} unchanged, {path2} atime {m}, mtime {m}".format(
path1=path1, path2=path2, m=long_ago_posix))
os.utime(path2, (long_ago_posix, long_ago_posix))
lstat1, lstat2 = os.lstat(path1), os.lstat(path2)
print("After: {path1} atime {sa}, mtime {sm}, {path2} atime {la}, mtime {lm}".format(
path1=path1, path2=path2, sa=lstat1.st_atime, sm=lstat1.st_mtime,
la=lstat2.st_atime, lm=lstat2.st_mtime))
这是我看到的不当行为。 “After:”时间对于“源”而不是对于“链接”会发生变化,但应该发生相反的情况:
% ../src/utime_symlink_test.py
Before: source atime 1514931280.0, mtime 1514931280.0, link atime 1514931280.0, mtime 1514931280.0
Desired: source unchanged, link atime 1483257600.0, mtime 1483257600.0
After: source atime 1483257600.0, mtime 1483257600.0, link atime 1514931280.0, mtime 1514931280.0
% ls -ldT source link
lrwxr-xr-x 1 myuser staff 6 2 Jan 14:14:40 2018 link -> source
drwxr-xr-x 2 myuser staff 68 1 Jan 00:00:00 2017 source
相比之下,touch -h
根据需要更改符号链接(symbolic link)的 atime 和 mtime。
% touch -h -t 201701010000 link
% ls -ldT source link
lrwxr-xr-x 1 myuser staff 6 1 Jan 00:00:00 2017 link -> source
drwxr-xr-x 2 myuser staff 68 1 Jan 00:00:00 2017 source
也许从 Python 执行 touch -h
是我最好的选择,但我希望有更好的选择。
最佳答案
升级到 Python 3.6 并使用 follow_symlinks
选项。
os.utime(path2, (long_ago_posix, long_ago_posix), follow_symlinks = False)
关于python - 如何从 Python 更改符号链接(symbolic link)的 atime 和 mtime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48068739/
我使用 mtime 和 find 。我是第一次交。 我看到一个将文件从一个位置移动到另一个位置的脚本。 `find . \ -mtime +0 -exec mv {} target \ ;` 我想了
所以我的问题是关于使用 find -mtime(以及 atime & ctime)。正如我所知,-mtime -n 搜索比 n 天新的文件,+n 比 n 天早的文件,-mtime n 搜索恰好 n 天
我正在尝试获取目录上的mtime。我不确定这是否是正确的方法,但是当目录中的文件发生更改时如何获取 mtime ? 这就是我目前正在做的事情: let statTs = fs.statSync(cfg
linux下的find命令在目录结构中搜索文件,并执行指定的操作。linux下的find命令提供了相当多的查找条件,功能很强大,由于find的功能很强大,所以他的选项也很多,今天我们来细说一下fin
我正在尝试在不使用 Matlab 内置函数(例如 fft())的情况下实现一维 DFT。这是我的代码 function [Xk] = dft1(xn) N=length(xn); n = 0:1:N-
做什么find -mtime -4和 find -mtime +4做?我无法理解手册页中给出的示例。 最佳答案 嗯,我可以。 -mtime n File's data was last modifie
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
基本上我想做与系统调用 touch 相同的事情(如果文件不存在则创建文件,如果存在则更新其修改时间戳)。 std::string file = ...; std::ofstream(file.c_st
我正在尝试使用 -mtime +(variable) 查找文件,但每次我在 GNU 中执行以下命令时都会收到错误消息: find: missing argument to `-mtime' 在 AIX
当我对/dev/input/event* 这样的输入设备文件进行统计时,我得到文件的 mtime 作为系统启动时间。 它至少应该获取击键并将文件的 mtime 更新为当前时间!! 有人知道这些输入设备
我在家里做了一个文件夹,我在里面摸了一个文件。现在我正在执行 find /home -mtime 1 但它没有找到任何东西。这正常吗? 最佳答案 你需要使用: find /home -mtime -1
我有一个文件 a.dat,大小为 1GB,位于磁盘上。出于性能原因,我重用了这个文件并根据需要简单地覆盖它的内容,而不是创建一个新文件并让它增长(每个增长操作都必须更新它在 inode 中的大小)。
我在这里面临一个棘手的情况。我有一个基于 java 的应用程序,它试图通过 scp 远程机器复制某些文件。在执行这些任务时,我从应用程序端发现以下错误消息。 scp protocol error mt
我很清楚能够执行 find myfile.txt -mtime +5 来检查我的文件是否超过 5 天。但是我想在 myfile.txt 的天数中获取 mtime 并将其存储到变量中以供进一步使用。我该
如何从 Node.js 中找出系统的 mtime 分辨率? 我为什么问 在 Node.js 中,fs.watch 有时会发出重复的 change 事件。为了避免采取多余的操作,通常使用这样的代码(来自
我有一个大小为 550x128 的数组。我将它保存在一个 .mat 文件中并再次加载它以在另一个函数中使用它。 save('c:\\coeffs2.mat', 'descr2'); des2=load
当我使用 Files.getLastModifiedTime 从 Java 读取文件的 mtime 时,返回值被截断为整秒。我知道这适用于其他系统以获取毫秒分辨率的时间,那么我的有什么不同? 这是一个
当我使用 Files.getLastModifiedTime 从 Java 读取文件的 mtime 时,返回值被截断为整秒。我知道这适用于其他系统以获取毫秒分辨率的时间,那么我的有什么不同? 这是一个
更新 下面的 bash 命令行似乎表明它不是 R 问题(玩一下 sleep 看看它只会在每秒 0.43 和 0.93 后更新)。 (所以我更改了问题标签。) touch tmp.txt;stat tm
随着git-restoremtime脚本可以根据提交消息中的日期修改从 git 存储库中 check out 的文件的修改时间。 但是,如何使目录的 mtime 看起来直观、确定且一致? 我认为将每个
我是一名优秀的程序员,十分优秀!