linux文件权限怎么修改时间,Linux中进文件以及创建文件需要的权限,文件中ACM三个时间代表的含义以及touch如何修改时间...

本文主要是介绍linux文件权限怎么修改时间,Linux中进文件以及创建文件需要的权限,文件中ACM三个时间代表的含义以及touch如何修改时间...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、进一个文件需要什么权限,在文件中创建一个文件需要什么权限?

①进入一个文件需要什么权限?

首先,我们在超级用户下进行查看

75ddfd19b36826427611e17a4da41c12.png

我们先通过mkdir创建一个叫做dir的目录,然后ls-l或者ll来查看它的权限,然后再通过chmod 000 dir将dir的读、写和执行三种权限全部取消。

11c1569e1a7a318e29c21c6ed8499817.png

我们发现依然可以进入dir这个目录,所以我们可以得出对于拥有者来说,就算权限没有也能进入目录。

下面我们将拥有者改成普通用户再去看一下

691b44db322df72483b71745e3ed8093.png

11c1569e1a7a318e29c21c6ed8499817.png

我们可以发现依旧可以进入到dir目录中去。

所以我们可以在这里得出一个结论:对于在超级用户下,无论目录拥有者是超级用户还是普通用户,无论拥有者是否具有读写执行的权限,都可以进入目录。

然后,我们跳到普通用户下再去查看一遍

765520b0ea7476d858b4844c25d683d4.png

我们可以发现,当想要进入目录的时候提示权限不够。

然后我们将权限提升至可读

c2357136228154aeb2abd91c5bdc9649.png

我们发现,对于打开一个目录,只读的权限是不行的;那么我们再将权限改成只写,再去观察

e9ab0fdedfa2e2772e30c3981b89c469.png

同样,通过上图我们发现对于打开一个目录,只写的权限也是不行的,那么我们再将其改成可执行试一下

ba7ccbf4c7b2b54d11b4ff09f98f3a3b.png

通过上图我们发现执行的权限是可以打开目录了,但是却无法打开其中的文件,但是当权限提升至可读和可执行时,我们就能在打开目录的情况下再去打开文件

191f2ced1acc60641c26026d4a50f487.png

所以,我们最后总结得到:

①超级用户下创建的目录,不管有没有权限,都可进入目录

②普通用户下创建的目录,需要对拥有者有可执行权限才能进入目录,若要读取目录中的文件列表,则要对拥有者开放读权限

②在文件中创建一个文件需要什么权限?

首先,我们还是在超级用户下进行查看

cad62198d219c1d0352875783c073a0a.png

我们将其权限全部取消,但是还是可以在dir目录下创建dir1这个目录文件

然后我们在这里将拥有者换一下

26ce2fc47077e19d2e1fa4abf8d06c61.png

我们可以发现,换了拥有者还是一点影响都没有,所以借此我们大概可以得到在超级用户下,在文件中创建文件不需要权限。

接着,我们换回到普通用户下去观察

2ae675d25f2cd1f8885c275f9e1a576b.png

我们发现,在只有执行权限的情况下无法在文件中创建文件,那么我们再将可读权限提上来试一下

9fb37ae43714a6957f16836059a4eb56.png

我们发现有了可读权限后还是无法在其中创建文件,那么我们再将可读换成写试一下

c51459abd8fe5ec761acdbcc19ed88f5.png

在这里,我们可以发现,在可写的权限下可以在其中创建文件。

所以,我们最后总结可以得到:

①超级用户下创建的目录,不管有没有权限,都可在文件中创建文件

②普通用户下创建的目录,需要拥有者有可写权限才能在文件中创建文件,当然,必须还要有可执行权限,否则进都进不去的

2、文件中ACM三个时间代表的含义以及touch如何修改时间

①文件中ACM三个时间代表的含义

bf187b087973d48d039ec5aee6ea99b1.png

我们通过stat指令可以得到关于创建的文件的相关信息,其中在上面File表示文件,后面接文件名;然后是Blocks表示块,IO Blocks表示IO块, 是普通文件,大小为0。

下面我们主要还是要看一下Access,Modify和Change这三种时间分别代表的意思:

Access Time:表示最近访问时间

简称atime,就是一个文件或目录的最近一次的被访问时间

一般来说,只要我们读取文件,那么atime就会被修改,如下图我们可以就看到Access这里的时间明显与上面有了区别

912151929d1cb0ad0125140e0ced0905.png

但是,我在网上查到一些资料说,为解决文件读取频繁的系统中atime更新所带来的开销问题,所以很多SA都在挂装文件系统的时候使用noatime属性来停止更新atime,这样可以把atime当做文件创建时间来使用。但是有些程序需要根据atime进行一些判断和操作,所以Linux在2.6新版本的内核就推出了一个relatime特性。使用这个特性来挂装文件系统后,只有当mtime比atime更新的时候,才会更新atime。也就是说单纯的more,cat命令并不会更新atime,只有当你修改过文件后再次读取才会更新atime。

Modify Time: 表示最近更改时间

简称 mtime,就是一个文件或目录当前内容最后被修改的时间

修改时间我们很容易想成文件有修改才改变,那其实也的确是这样,只是这个修改是指修改的操作,不是说文件内容不变它就不改变,而是需要文件没有进行过写操作。比如我们用命令vim test打开文件,在test中加一个字符'd',然后再删除字符'd',这个时候用:w保存文件,我们会发现虽然test文件内容没有变化,但是它的修改时间mtime已经更新。当然这个操作本身是先打开文件再修改的,所以atime也会更新, ctime肯定也要更新。

这次以一个test.c文件为例:

279a16972b529be136e37928856245b5.png

我们可以看到,在我没有对test.c做改动之前的时间,下面我用vim去打开test.c并做出一定的修改

e88911ee4bcb903c08c85925ca21c75b.png

我在Hello Linux后面添加了一个!号,然后我们出去再看一下test.c的相关时间

02a559048af26cc178ba32364cc62b24.png

我们可以看到三种时间全部变了,当然我这里是进行了写操作才会改变的,但是就如我上面说的,就算我没有添加东西,只要我进行过写操作,那么时间就会被改变。

Change Time:表示最近改动时间

简称ctime,就是一个文件或目录的更改时间,当然这里指的是文件或目录的属性(所有者,权限等等)被修改的时间。

所以我们可以简单的通过chmod,chown,chgrp三种指令来改变ctime。

530f7205c3ae3b955d06fe2b4ad13807.png

上面是还不曾修改的file的相关信息,下面我们通过chmod这个指令修改file的权限,然后再次做对比

057820d3270d138cf098d7270f34c735.png

我们可以发现,Change这里的时间很明显的被修改了,那么我们可以通过上面总结得到

a.修改文件权限或者所有者、链接数等属性,如chmod,chown,ln等操作(不包括ln -s)。 b.修改文件内容。(当然也会改变mtime,如果是使用vim等工具打开文件再修改,同时也会修改atime。如果只是用echo 'hehe' >> test这个命令进行追加写入,则只会修改ctime,mtime,不影响atime)。

②用touch如何修改时间

首先介绍touch指令:

使用touch指令,不仅可以创建一个文件,还可以修改文件的时间:

格式:touch 参数  文件名

参数:

-a:或--time=atime或--time=access或--time=use

-c:或--no-creat,如果棉花地文件不存在,也不创建任何文档

-d:使用指定的日期时间,可以使用不同的格式

-m:或--time=mtime或--time=modify,改变修改时间

-r:把指定的文件日期更设成和参考文档或目录日期相同的时间

-t:使用指定的日期时间,格式与date指令相同

下面我们通过实例演示讲解命令的使用

1.新建一个文件:

touch 文件名

d00902fe547ea5418d48aac544e06e93.png

这样我们就可以创建一个新的文件了

2.修改Atime:

touch -a 文件名

05dff50a977db30592facbe52cfef740.png

我们可以发现图中箭头指向的时间发生了改变,而就是通过touch -a这个指令。

3.使用指定的日期来修改:

touch -d  时间  文件名

touch -d "时间"  文件名

0711100b8de1be954bb1b70d4407dd69.png

a3b95ab2936f185f73eeade240a040f6.png

这样我们可以发现时间按照我输入的格式改变了,无论是直接输入时间还是加上双引号输入时间。

4.使用-t参数来修改时间:

72c1a54e922a558a14daedce5f63ade0.png

5.将1文件的时间设置为与2文件相同的时间:

touch  -r  2.txt  1.txt

e8243e712e381d25c4f6967e5deeff69.png 我们可以看到newfile的时间已经被修改成与file的时间一致了。

这篇关于linux文件权限怎么修改时间,Linux中进文件以及创建文件需要的权限,文件中ACM三个时间代表的含义以及touch如何修改时间...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538156

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解