目录
一、 find命令
二、 文件名后缀
一、 find命令
find
命令find命令用来在指定目录下查找文件,其格式为:find [路径] [参数] [ -print ] [ -exec -ok command ] { } /;
print: find命令将匹配的文件输出到标准输出。
exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
ok: 和exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
exec command {} \; 将查到的文件执行command操作,{} 和 \;之间有空格
下面简单介绍find
的几个常用的参数:
- -name filename:表示直接查找该文件名的文件。
示例:
[root@minglinux-01 ~]# find /etc/ -name 'sshd'
/etc/pam.d/sshd
/etc/sysconfig/sshd
[root@minglinux-01 ~]# find . -name 'dir*' //.表示当前目录,*是通配符
./dir1
./dir2
./dir3
./dir4
[root@minglinux-01 ~]# find . -name 'test*'
./dir1/test1
./dir2/test2
./dir2/test5
./dir2/test6
./dir2/test7
./dir3/test3
./dir4/test4
./123/test
./123/test2
- -type filetype:表示通过文件类型查找文件。前面学过,filetype包含f、b、c、d、l、s等类型。
示例命令:
[root@minglinux-01 ~]# find . -type d
.
./.ssh
./dir1
./dir2
./dir3
./dir4
./123
./123/456
./123/789
[root@minglinux-01 ~]# find . -type l
./1_soft.txt
- size 文件大小单元:查找符合指定的文件大小的文件。示例:
[root@minglinux-01 ~]# find /root/ -type f -size -1k -exec ls -lh {} \;
-rwxr--r--. 1 root root 0 9月 14 23:16 /root/dir1/test1
-rw-r--r--. 1 user1 testgroup 0 9月 14 23:53 /root/dir2/test2
-rw-r--r--. 1 root root 0 9月 15 01:20 /root/dir2/test5
-rw-r--r--. 1 root root 0 9月 15 01:21 /root/dir2/test6
-rw-r--r--. 1 root root 0 9月 15 01:22 /root/dir2/test7
-rw-r--r--. 1 root testgroup 0 9月 15 00:05 /root/dir3/test3
-rw-rw-r--. 1 root root 0 9月 15 00:42 /root/dir4/test4
-rw-r--r--. 1 root user1 0 9月 18 07:11 /root/123/test
-rw-r--r--. 1 root root 0 9月 18 07:19 /root/123/test2
-rw-r--r--. 1 root root 0 9月 18 08:18 /root/1.txt
介绍一个命令stat
,stat
命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。如下示例:
[root@minglinux-01 ~]# stat 1.txt
文件:"1.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:803h/2051d Inode:33637538 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2018-09-18 08:18:15.715855472 +0800
最近更改:2018-09-18 08:18:15.715855472 +0800
最近改动:2018-09-18 08:18:15.715855472 +0800
创建时间:-
上面的示例中可以看到文件的3个关于时间的信息,分别为最近访问、最近更改和最近改动。
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
下面介绍3个根据文件时间戳进行搜索的参数:
- -atime +n/-n:表示访问或执行时间大于或小于n天的文件。参数还有-amin的用法,单位是分钟。
查找当前目录一天内被访问过的所有文件,示例:
[root@minglinux-01 ~]# find . -atime -1
.
./.bash_profile
./.bashrc
./.bash_history
./.ssh
./.ssh/authorized_keys
./dir1
./dir2
./dir3
./dir4
./123
./123/456
./123/test
./123/789
./123/test2
./1_soft.txt
./1.txt
- -ctime +n/-n:表示写入、更改inode属性(如更改所有者、权限或者链接)的时间大于或小于n天的文件。参数也有-amin的用法,单位是分钟。
查找当前目录一天内文件数据元(例如权限等)被修改过的文件,命令如下:
[root@minglinux-01 ~]# find . -ctime -1
.
./.bash_history
./123
./123/456
./123/test
./123/789
./123/test2
./123/1.txt
./1_hard.txt
./1_soft.txt
./1.txt
- -mtime +n/-n:表示写入时间大于或小于n天的文件,该参数用得最多。参数也有-amin的用法,单位是分钟。
查找当前目录一天内被修改过的文件,示例:
[root@minglinux-01 ~]# find . -mtime -1
.
./.bash_history
./123
./123/456
./123/test
./123/789
./123/test2
./1_soft.txt
./1.txt
参数的-mmin用法:
[root@minglinux-01 ~]# find /root/ -type f -mmin -200
/root/.bash_history
find
的一个特殊用法示例如下:
[root@minglinux-01 ~]# ls -i 1_hard.txt
33637540 1_hard.txt
[root@minglinux-01 ~]# find . -inum 33637540
./123/1.txt
./1_hard.txt
上例可以知道通过# find . -inum inode号
命令可以查找硬链接。
二、 文件名后缀
在Linux系统中,文件的后缀名没有具体意义,加或不加都无所谓。但是为了区分,我们习惯在定义文件名时加一个后缀名。
比如1.sh代表它是一个shell脚本,2.tar.gz代表它是一个压缩包,my.conf代表它是一个配置文件,test.zip代表它是一个压缩文件。
网友评论