Linux学习-0918

2.23find(上)node

2.24find(中)linux

2.25find(下)ssh

2.26文件名后缀socket

 

 

1、find 查找文件.net

    linux中有不少查找的命令,好比说: which、whereis、locate 。这些都不经常使用,用的最可能是find命令。命令行

    顺便记录命令行几个经常使用快捷键:code

    ctrl + l :清屏get

    ctrl +d :退出终端,相似 exit  logout命令it

    ctrl +d :命令行有字符时,ctrl+d是日后一个个删除字符module

    ctrl + u:删除光标前面的

    ctrl +a: 光标移动最前面

    ctrl+e:光标移动到最后面

  

    find命令是用来查找文件。

    用法:find 路径  -type 文件名

    示例:

    查找etc目录下的名字为"ssh_config"的文件

[root@wxy03 ~]# find /etc/  -name  "ssh_config"
/etc/ssh/ssh_config

    不太记得文件名了,也能够模糊查询文件

[root@wxy03 ~]# find /etc/  -name  "ssh*"
/etc/ssh
/etc/ssh/ssh_config
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_ecdsa_key.pub

    也能够只查找目录,-type就是指定查找类型,d就是指目录的意思。同理若是须要查找其它类型的文件就能够-tyep 加上想要查找的文件类型就能够了,好比说:f 就是文件类型,s 是socket文件等等。

[root@wxy03 ~]# find /etc/  -type d -name  "ssh*"
/etc/ssh
/etc/selinux/targeted/active/modules/100/ssh
[root@wxy03 ~]#

 

    find按修改时间进行查找:

    linux的文件有三个时间,可使用stat命令来查看一下:

[root@wxy03 home]# stat  3.txt 
  File: ‘3.txt’
  Size: 68        	Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 73732       Links: 4
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-09-17 23:21:01.419307695 +0800
Modify: 2018-09-17 23:21:01.419307695 +0800
Change: 2018-09-17 23:27:37.947371616 +0800
 Birth: -
[root@wxy03 home]#

Access:是文件最后的访问时间

Modify:文件的最后一次修改时间

Change:文件状态最后一次修改时间。好比权限修改 、mv等。change状态会收到modify的影响。

find 能够根据这个三个时间进行查找,他们分别是 -atime -mtime -ctime

示例:

 查找home目录下一天内修改过的文件,-mtime  -1  这个-1就是一天内的意思,若是要查找一天前修改过的改为+1就能够了。  

[root@wxy03 home]# find /home/ -type f -mtime  -1
/home/3.txt
/home/2.txt
/home/1.txt
[root@wxy03 home]#

同理若是要查找一天之内查看过的文件把mtime改成atime,查找一天之内修改过权限或者移动过的文件mtime改成ctime便可。

以上三个时间只能以天为单位进行查找,find还有一个参数能够按分钟进行查找:

查找120分钟内修改过的文件,-mmIn 120就是120分钟内的,若是想要查找60分钟内的把120改为60便可

[root@wxy03 home]# find / -type f -mmin 120 
/var/lib/rpm/__db.003
/var/lib/rpm/__db.001
/var/lib/rpm/__db.002
/var/cache/yum/x86_64/7/timedhosts

find还支持or条件,加上-o参数,好比:查找一天之内修改或者文件名中包含“ssh”的:find /etc/  -type f -o -mtime -1  -o -name "ssh*"

find exec用法:

 exec能够把find查到的内容当作后面命令的参数,如把查找到文件统一修改文件名:

[root@wxy03 home]# find  /tmp/ -type f -name "*.txt"
/tmp/3.txt
/tmp/2.txt
/tmp/1.txt
[root@wxy03 home]# find /tmp/ -type f   -name  "*.txt" -exec  mv  {} {}.bak \;
[root@wxy03 home]# find  /tmp/ -type f -name "*.bak"
/tmp/2.txt.bak
/tmp/1.txt.bak
/tmp/3.txt.bak

注意:使用exec 须要以 ";"结尾,并要使用"\"脱意

 

  • 指定某个时间段进行查找

         find . -newermt '2018-11-18 15:00' ! -newermt '2018-11-18 23:59'

 

find按文件大小进行查找:

find还能够根据文件大小进行查找,用法:find -size<文件大小>  

示例:

 查找10k以上的文件:

find /etc/ -type f -size +10k
查找10M以上的文件:

find /etc/ -type f -size +10M

size的文件大小格式:

  • b —— 块(512字节)
  • c —— 字节
  • w —— 字(2字节)
  • k —— 千字节
  • M —— 兆字节
  • G —— 吉字节

 

2、文件后缀

    linux系统中文件后缀实际上是没什么用的,可是为了便于区分,咱们习惯在定义一个文件类型的时加一个后缀名,这能够快速分辨文件类型。
    经常使用的文件后缀有:

    .sh :脚本文件

    .txt:文本文件

    .gz /.tar :压缩文件

    .cnf:配置文件

相关文章
相关标签/搜索