Unix 停止更改文件的修改时间

Unix 停止更改文件的修改时间,unix,stat,Unix,Stat,文件有三个时间值: 访问-读取文件时 修改-修改文件内容时 更改-文件元数据更改时 在Unix中使用stat命令可以看到这些时间值。 是否有任何方法可以使修改时间保持不变,并且即使文件内容发生更改也不允许其更改 我使用的是Ubuntu 14.04操作系统  @Abhash Upadhyaya 我试过这个。但是每次我访问文件时,修改时间都在更改。我希望时间是相同的,即使在它被访问或其内容被更改 ridhima@ridhima:~$ touch -d 20120101 goldenfile rid

文件有三个时间值:

  • 访问-读取文件时
  • 修改-修改文件内容时
  • 更改-文件元数据更改时
  • 在Unix中使用
    stat
    命令可以看到这些时间值。 是否有任何方法可以使修改时间保持不变,并且即使文件内容发生更改也不允许其更改

    我使用的是Ubuntu 14.04操作系统

     @Abhash Upadhyaya
    我试过这个。但是每次我访问文件时,修改时间都在更改。我希望时间是相同的,即使在它被访问或其内容被更改

    ridhima@ridhima:~$ touch -d 20120101 goldenfile
    ridhima@ridhima:~$ stat goldenfile 
      File: ‘goldenfile’
      Size: 0           Blocks: 0          IO Block: 4096   regular empty file
    Device: 805h/2053d  Inode: 5259884     Links: 1
    Access: (0644/-rw-r--r--)  Uid: (618146911/ridhima)   Gid: (618136065/domain^users)
    Access: 2012-01-01 00:00:00.000000000 +0530
    Modify: 2012-01-01 00:00:00.000000000 +0530
    Change: 2015-11-24 12:01:34.838442527 +0530
     Birth: -
    ridhima@ridhima:~$ 
    ridhima@ridhima:~$ 
    ridhima@ridhima:~$ 
    ridhima@ridhima:~$ touch goldenfile 
    ridhima@ridhima:~$ stat goldenfile 
      File: ‘goldenfile’
      Size: 0           Blocks: 0          IO Block: 4096   regular empty file
    Device: 805h/2053d  Inode: 5259884     Links: 1
    Access: (0644/-rw-r--r--)  Uid: (618146911/ridhima)   Gid: (618136065/domain^users)
    Access: 2015-11-24 12:01:44.378442982 +0530
    Modify: 2015-11-24 12:01:44.378442982 +0530
    Change: 2015-11-24 12:01:44.378442982 +0530
     Birth: -
    ridhima@ridhima:~$ vi goldenfile 
    ridhima@ridhima:~$ stat goldenfile 
      File: ‘goldenfile’
      Size: 5           Blocks: 8          IO Block: 4096   regular file
    Device: 805h/2053d  Inode: 5259943     Links: 1
    Access: (0644/-rw-r--r--)  Uid: (618146911/ridhima)   Gid: (618136065/domain^users)
    Access: 2015-11-24 12:02:09.662444188 +0530
    Modify: 2015-11-24 12:02:09.662444188 +0530
    Change: 2015-11-24 12:02:09.666444188 +0530
     Birth: -
    

    您可以使用触摸命令

    例如,这里有一个使用任意时间戳创建的goldenfile

    $ touch -d 20120101 goldenfile
    $ ls -l goldenfile 
    -rw-rw-r--. 1 user user 0 Jan  1  2012 goldenfile
    
    您可以根据自己的需要使用各种开关,如

  • -仅更改访问时间
  • -m仅更改修改时间

  • 有关触摸命令的更多信息,请在终端上执行
    $man touch

    您有时可以通过使用适当的标志安装文件系统来执行此操作。例如,如果文件系统以只读方式装入,则不会更改时间。也可能有更专门的选择。是否可以为单个文件执行此操作取决于文件系统。可能存在“不可变”标志-这会阻止文件更改,从而防止修改时间更改。我不确定是否有办法允许修改文件,但防止修改时间被更新。其他人将不得不告诉你是否有-我将做一个有根据的猜测,没有。@Ridhima,Ubuntu,取决于何时/如何安装它,默认使用
    relatime
    noatime
    装载选项-这意味着访问时间跟踪基本上被禁用。您可以通过从
    /etc/fstab
    中删除该选项并重新启动来更改它。或者,例如
    sudo mount-o remount,atime/home
    在相关文件系统上。这设置了文件的修改时间(因此通常会更改它),而问题是如何防止修改时间被更改。