【linux】linux命令如何查看⽂件、⽂件夹的属性,包括⼤⼩、
修改时间、谁修改的
【linux命令如何查看⽂件、⽂件夹的属性,包括⼤⼩、修改时间、谁修改的】
1、查看⽂件⼤⼩:
#du -sh filename
2、查看⽂件,⽂件夹属性:
#ls -l filename
#ls -ld foldername
3、查看⽂件的三个时间 atime ,ctime, mtime
3.1、 mtime(modification time),修改时间: 这个时间指的是⽂件内容修改的时间,⽽不是⽂件属性的修改,当数据内容修改时,这个时间就会改变,⽤命令ls -l默认显⽰的就是这个时间
3.2、ctime(status time ),状态时间:当⼀个⽂件的状态改变时,这个时间就会改变,例如更改了⽂件的权限与属性等,它就会改变。
3.3、atime(access time),访问时间:当读取⽂件内容时,就会更改这个时间,例如使⽤cat 去读取/fig,那么该⽂件的atime就会改变。
3.4、查看命令:
# ls -l --full-time /fig mtime
# ls -l --time=atime --full-time /fig atime
# ls -l --time=ctime --full-time /fig ctime
4、其他
如果要⼀起查看⽂件的三个时间情况,可以⽤命令stat进⾏查看
# stat /fig
【linux 下查看⽂件修改时间等】
查看⽂件时间戳命令:
File: `'
Size: 20 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 380730 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2008-04-26 01:50:44.000000000 +0800
Modify: 2008-04-26 01:48:18.000000000 +0800
Change: 2008-04-26 01:48:18.000000000 +0800
说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个⽬录所有⽂件的状态。
现在是要过滤出Modify的时间戳,并以yyyyMMddHHSS格式保存,则可以利⽤下⾯这条命令:
| grep -i Modify | awk -F. '{print $1}' | awk '{print 23}'| awk -F- '{print 12$3}' | awk -F: '{print 12$3}'
输出结果:20080426014818
修改⽂件时间与创建新⽂件:touch
在介绍ls命令时,提到每个⽂件在Linux下⾯都会记录3个主要的修改时间:
• modification time(mtime,修改时间):当该⽂件的“内容数据”更改时,就会更新这个时间。内容数据指的是⽂件的内容,⽽不是⽂件的属性。
• status time(ctime,状态时间):当该⽂件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。
• access time(atime,存取时间):当“取⽤⽂件内容”时,就会更新这个读取时间。举例来说,使⽤cat去读取 ~/.bashrc,就会更新atime 了。
举例来说,我们来看⼀看/fig⽂件的时间。
[root@linux ~]# ls -l /fig
-rw-r--r-- 1 root root 4506 Apr 8 19:11 /fig
[root@linux ~]# ls -l --time=atime /fig
-rw-r--r-- 1 root root 4506 Jul 19 17:53 /fig
[root@linux ~]# ls -l --time=ctime /fig
-rw-r--r-- 1 root root 4506 Jun 25 08:28 /fig
看到了吗?在默认的情况下,ls显⽰的是该⽂件的mtime,也就是这个⽂件的内容上次更改的时间。我的系统是在6/25安装的,因此,这个⽂件产⽣但状态更改的时间就回溯到那个时间点。因为刚才的范例中使⽤到这个⽂件,所以,它的atime就会变成刚刚使⽤的时间了。
⽂件的时间很重要,因为如果误判⽂件时间,可能会造成某些程序⽆法顺利运⾏。那么,万⼀我发现了⼀个⽂件来⾃将来(很多时候会有这个问题的。我们在安装的时候,提到的GMT时间就是那个意思),该如何让该⽂件的时间变成“现在”的时刻呢?很简单,⽤touch命令即可。
[root@linux ~]# touch [-acdmt] ⽂件
参数:
-a : 仅修改access time。
-c : 仅修改时间,⽽不建⽴⽂件。
-d : 后⾯可以接⽇期,也可以使⽤ --date="⽇期或时间"
-m : 仅修改mtime。
-t : 后⾯可以接时间,格式为 [YYMMDDhhmm]
范例:
范例⼀:新建⼀个空的⽂件。
[root@linux ~]# cd /tmp
[root@linux tmp]# touch testtouch
[root@linux tmp]# ls -l testtouch
-rw-r--r-- 1 root root 0 Jul 19 20:49 testtouch
# 注意,这个⽂件的⼤⼩是0。在默认的状态下,如果touch后⾯接⽂件,
# 则该⽂件的3个时间(atime/ctime/mtime)都会更新为当前时间。若该⽂件不存在,
# 则会主动建⽴⼀个新的空⽂件。例如上⾯这个例⼦。
范例⼆:将 ~/.bashrc复制成为bashrc,假设复制完全的属性,检查其⽇期。
[root@linux tmp]# cp ~/.bashrc bashrc
[root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 bashrc <==这是mtime
-rwxr-xr-x 1 root root 395 Jul 19 20:44 bashrc <==这是atime
-rwxr-xr-x 1 root root 395 Jul 19 20:53 bashrc <==这是ctime
# 在这个案例中,我们使⽤了 ; 命令分隔符,它的⽤法我们会在Bash shell中提到。
# 此外,ll是ls -l的命令别名,这个也会在bash shell中再次提及,
# 当前可以简单地想成,ll就是ls -l的简写。⾄于 ; 则是同时发出两个命令,
# 且让两个命令“按顺序”执⾏的意思。上⾯的结果中可以看到,该⽂件更改的⽇期
# Jul 4 11:45,但是atime与ctime不⼀样。
范例三:修改案例⼆的bashrc⽂件,将⽇期调整为两天前。
[root@linux tmp]# touch -d "2 days ago" bashrc
[root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 Jul 17 21:02 bashrc
-rwxr-xr-x 1 root root 395 Jul 17 21:02 bashrc
-rwxr-xr-x 1 root root 395 Jul 19 21:02 bashrc
# 与上⼀个范例⽐较,本来是19⽇的变成了17⽇了(atime/mtime)。
# 不过,ctime并没有跟着改变。
范例四:将上个范例的bashrc⽇期改为2005/07/15 2:02。
[root@linux tmp]# touch -t 0507150202 bashrc
[root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 Jul 15 02:02 bashrclinux查看当前文件夹内容
-rwxr-xr-x 1 root root 395 Jul 15 02:02 bashrc
-rwxr-xr-x 1 root root 395 Jul 19 21:05 bashrc
# 注意,⽇期在atime与mtime都改变了,但ctime则是记录当前的时间。
通过touch命令,可以轻松地修改⽂件的⽇期与时间。并且,也可以建⽴⼀个空⽂件。不过,要注意的是,即使复制⼀个⽂件,复制所有属性,但也没有办法复制ctime属性。ctime可以记录⽂件最近改变状态(status)的时间。⽆论如何,还是要说明⼀下,我们平时看的⽂件属性中,⽐较重要的还是 mtime。我们关⼼的常常是这个⽂件的“内容”是什么时候更改的。
touch这个命令最常⽤的情况是:
• 建⽴⼀个空⽂件。
• 将某个⽂件⽇期修改为当前⽇期(mtime与atime)。
与⽂件相关的⼏个时间:
1、访问时间,读⼀次这个⽂件的内容,这个时间就会更新。⽐如对这个⽂件使⽤more命令。ls、stat命令都不会修改⽂件的访问时间。
2、修改时间,对⽂件内容修改⼀次,这个时间就会更新。⽐如:vi后保存⽂件。ls -l列出的时间就是这个时间。
3、状态改变时间。通过chmod命令更改⼀次⽂件属性,这个时间就会更新。查看⽂件的详细的状态、准确的修改时间等,可以通过stat命令⽂件名。
Processing math: 100%
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论