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:配置文件

相關文章
相關標籤/搜索