2.23/2.24/2.25 find命令 2.26 文件名後綴

 

 命令findphp

  1. 命令語法:
    find [路徑][參數]html

  2. 命令描述
    命令find是用來搜索文件。node

  3. 命令選項
    -type 表示 文件類型
    -name 表示 文件名
    -o 表示 或 的意思
    -mmin 表示分鐘
    -inum 表示查找一個文件的硬連接。
    -exec <執行指令>:假設find指令的回傳值爲True,就執行該指令。
    -size 文件大小
    -atime +n/-n 表示訪問或執行時間大於或小於n天的文件。
    -ctime +n/-n 表示寫入,更改inode屬性(如更改全部者,權限或者連接)的時間大於或小於n天的文件。
    -mtime +n/-n 表示寫入時間大於或小於n天的文件,該參數用得最多。linux

  • 文件的 access time(即atime) 是在讀取文件或者執行文件時更改的。

 

指定名字 -neme  shell

 指定類型-type     d f (-) l s c b 瀏覽器

#find /etc/ -name "sshd_config"bash

根據name的前半部分模糊搜索文件會列出與之相關的文件。 其語法: find 路徑 -name "文件名的前半部分 less

#find /etc/ -name "sshd*"ssh

指定文件#find /etc/ -type d -name "sshd*" (d目錄directory)spa

 

               #find /etc/ -type f -name "sshd*"  (f文件file)

根據文件的類型模糊搜索文件。 其語法: find 路徑 -type 文件類型 "文件名的前半部分 * "
說明: 這裏的 f 表示文件的類型。文件的類型有 - 普通文件,l 連接文件,b 塊設備文件等等。。。固然也可使用find命令只指定類型不指定name搜索文件。 d f (-) l s c b               

stat命令  是用來查看一個文件的具體信息,(文件名字、文件大小、所用的塊、設備、inode、硬連接、權限)和三個atime(access)        mtime(modify)       ctime(change)

[root@cham2 ~]# ls
111     123     1_heard.txt  22.txt  2.txt         88_sorft.txt  anaconda-ks.cfg.1
11.txt  12.txt  1_sorft      234     88_heard.txt  88.txt
[root@cham2 ~]# stat 2.txt
  文件:"2.txt"
  大小:1008          塊:8          IO 塊:4096   普通文件
設備:803h/2051d    Inode:16777669    硬連接:1
權限:(0700/-rwx------)  Uid:(    0/    root)   Gid:(    0/    root)
最近訪問:2017-10-25 16:41:31.486026949 +0800
最近更改:2017-10-25 16:41:31.486026949 +0800
最近改動:2017-10-25 16:41:31.486026949 +0800
建立時間:-


atime=access訪問時間        mtime=modify更改內容時間       ctime=change改動權限大小時間指的是除了內容的變化外 權限的變化 連接的變化 都算 等

 

#chmod 700 2.txt 改變了2.txt權限ctime(change)時間會變

echo命令 追加#echo "121212" >> 2.txt   從後面追加     mtime(modify)和ctime(change)都跟着變了

 

 

*知識點*改了文件的內容。那麼ctime 必定會變。ctime文件記錄着文件大小,時間,權限,全部者,所屬組**

cat一次2.txt說明訪問了。access=atime的時間就會變

用find查看一天之內的-1就是一天之內的,+1就是一天日後大於一天內的

#find /etc/ -type f -mtime -1   一天之內                                 ^C  (file)

find /etc/ -type f -mtime +1  大於一天文件較多,不截圖,相似-1   

不能寫=1

看一下一天之內/etc/發生過更改的文件,注意是文件file

還能夠搜一天內的訪問的文件

#find /etc/ -type f -atime -1     內容較多,不截圖

還有#find /etc/ -type f -ctime -1

特殊用法

而且和或者

而且

或者o就是or內容太多,不截圖

find搜索一個硬連接

  1. 想要查找一個文件的硬連接。須要先知道該文件的inode號。
  2. 而後根據inode號查詢它的硬連接。 語法爲: find / -inum inode號

語法#  find / -inum 33575641

[root@cham2 ~]# ls -l
total 16
-rw-rw-r--  1 root root   135 Oct 25 17:44 11.txt
drwxrwxr--  3 root root   126 Oct 26 20:41 111
-rw-r--r--  1 root root    65 Oct 25 17:20 12.txt
drwxr-xr-x  2 root root    42 Oct 26 20:41 123
-rw-r--r--  1 root root     0 Oct 25 17:31 1_heard.txt
lrwxrwxrwx  1 root root     5 Oct 26 21:31 1_sorft -> 1.txt
-rwx------  1 root root  1062 Oct 27 14:36 2.txt
-rw-r--r--  1 root root     0 Oct 25 17:07 22.txt
drwxrwxr-x  4 root user1   64 Oct 26 14:09 234
-rw-r--r--  2 root root     0 Oct 26 21:33 88.txt
-rw-r--r--  2 root root     0 Oct 26 21:33 88_heard.txt
lrwxrwxrwx  1 root root     6 Oct 26 21:34 88_sorft.txt -> 88.txt
-rw-------. 1 root root  1422 Oct 19 07:00 anaconda-ks.cfg.1
[root@cham2 ~]# ln 1_heard.txt /tmp/1.txt.bak             建立一個硬連接到tmp下面去命名爲1.txt.bak
[root@cham2 ~]# ls -l 1_heard.txt                         看一下
-rw-r--r-- 2 root root 0 Oct 25 17:31 1_heard.txt
[root@cham2 ~]# ls -i 1_heard.txt                         ls -i看一下inode號
33575641 1_heard.txt                                      
[root@cham2 ~]# find / -inum 33575641                     用find去查找 這個inode號
/root/1_heard.txt
/tmp/1.txt.bak

查找 /root/ 500分鐘之內的寫入過的文件。
如圖所示:
其中 -mmin表明分鐘

mmin 

# find /root/ -type f -mmin -500
 

[root@cham2 ~]# find /root/ -type f -mmin -500
/root/.bash_history.bak
/root/2.txt.bak
[root@cham2 ~]# ls -l /root/2.txt.bak 
-rwx------ 1 root root 1062 10月 27 14:36 /root/2.txt.bak
[root@cham2 ~]#

find的同時直接把文件列出來

在查找 /root/ 500分鐘之內的寫入過的文件的同時把文件的詳細信息列出來。
如圖所示:
在上圖命令的基礎上增長了: -exec ls -l { } \
命令解析:
1.-exec<執行指令>:假設find指令的回傳值爲True,就執行該指令。
2.ls -l :顯示文件的詳細信息
3.{ } 表示find出來的文件的列表

# find /root/ -type f -mmin -500 -exec ls -l {} \;
 

[root@cham2 ~]# find /root/ -type f -mmin -500 -exec ls -l {} \;
-rw-------. 1 root root 10116 10月 27 15:13 /root/.bash_history.bak
-rwx------ 1 root root 1062 10月 27 14:36 /root/2.txt.bak

find 的出來後的文件更名字 或者拷貝一下

# find /root/ -type f -mmin -900 -exec mv {} {}.bak \;
 

[root@cham2 ~]# find /root/ -type f -mmin -900 -exec mv {} {}.bak \;
[root@cham2 ~]# find /root/ -type f -mmin -900
/root/.bash_history.bak.bak
/root/2.txt.bak.bak

查找/root/目錄下小於10k的文件,並列出詳細信息。

-exec 

小於10K的

# find /root/ -type f -size -10 -exec ls -lh {} \;
 

[root@cham2 ~]# find /root/ -type f -size -10 -exec ls -lh {} \;
-rw-r--r--. 1 root root 18 12月 29 2013 /root/.bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 /root/.bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 /root/.bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 /root/.cshrc
-rw-r--r--. 1 root root 129 12月 29 2013 /root/.tcshrc
-rw-r--r-- 1 root root 354 10月 19 12:20 /root/.ssh/known_hosts
-rw------- 1 root root 1.7K 10月 18 23:58 /root/.ssh/id_rsa
-rw-r--r-- 1 root root 392 10月 18 23:58 /root/.ssh/id_rsa.pub
-rw------- 1 root root 789 10月 19 13:33 /root/.ssh/authorized_keys
-rw-------. 1 root root 1.4K 10月 19 07:00 /root/anaconda-ks.cfg.1
-rw------- 1 root root 62 10月 24 13:35 /root/.lesshst
-rw-r--r-- 1 root user1 0 10月 26 14:07 /root/234/chamlinux
-rw-r--r-- 1 root root 0 10月 26 14:09 /root/234/chamlinux111
-rw-r--r-- 1 root root 195 10月 25 17:23 /root/111/12.txt
-rw------- 1 root root 0 10月 25 17:19 /root/111/.12.txt.swp
-rw------- 1 root root 0 10月 25 17:19 /root/111/.12.txt.swx
-rw-r--r-- 1 root root 0 10月 25 17:20 /root/111/4913
-rw-r--r-- 1 root root 0 10月 25 17:20 /root/111/12.tx~
-rw-r--r-- 1 root root 0 10月 25 17:07 /root/22.txt
-rw-rw-r-- 1 root root 135 10月 25 17:44 /root/11.txt
-rw-r--r-- 1 root root 65 10月 25 17:20 /root/12.txt
-rw-r--r-- 2 root root 0 10月 25 17:31 /root/1_heard.txt
-rw-r--r-- 2 root root 0 10月 26 21:33 /root/88.txt
-rw-r--r-- 2 root root 0 10月 26 21:33 /root/88_heard.txt
-rwx------ 1 root root 1.1K 10月 27 14:36 /root/2.txt.bak.bak

大於10K的

[root@cham2 ~]# find /root/ -type f -size +10 -exec ls -lh {} \;
-rw-r--r-- 1 root root 12K 10月 25 17:20 /root/111/12_txt.swp
-rw------- 1 root root 12K 10月 25 17:02 /root/.1.txt.swp
-rw-------. 1 root root 9.9K 10月 27 15:13 /root/.bash_history.bak.bak

大於10M同理

 

find的經常使用的用法

find :-type   -mtime   -mmin   -size   -o   -exec    -name    

 

 

文件名後綴

在Linux下面命令或者文件是區分大小寫的

文件名後綴

·        .txt文件文件

·        .zip壓縮文件

·        .tar.gz打包文件

·        .conf配置文件

·        .exe可執行文件

Linux文件後綴名

注: 在Linux系統中,文件的後綴名沒有具體的意義,加或不加都無所謂。可是爲了便於區分,咱們習慣在定義文件名時加一個後綴名。一個Linux文件能不能被執行,與他的第一欄的十個屬性有關, 與文檔名根本一點關係也沒有。

  • 一般咱們仍是會以適當的擴展名來表示該文件是什麼種類的,經常使用的有:
  • *.sh : 腳本或批處理文件 (scripts),由於批處理文件爲使用shell寫成的,因此擴展名就編成 .sh ;
  • *Z, *.tar, *.tar.gz, *.zip, *.tgz: 通過打包的壓縮文件。這是由於壓縮軟件分別爲 gunzip, tar 等等的,因爲不一樣的壓縮軟件,而取其相關的擴展名!
  • *.html, *.php:網頁相關文件,分別表明 HTML 語法與 PHP 語法的網頁文件! .html 的文件可以使用網頁瀏覽器來直接開啓,至於 .php 的文件, 則能夠透過 client 端的瀏覽器來 server 端瀏覽,以獲得運算後的網頁結果!

Linux文件長度與文件名的限制

  • 在Linux下,使用預設的Ext2/Ext3文件系統時,針對文件的檔名長度限制爲:

  • 單一文件或目錄的最大允許文件名爲 255 個字符;

  • 包含完整路徑名稱及目錄 (/) 之完整檔名爲 4096 個字符。

  • 因爲Linux在文字接口下的一些指令操做關係,通常來講,你在設定Linux底下的文件名時, 最好能夠避免一些特殊字符比較好!例如底下這些:

? > < ; & ! [ ] | \ ' " ` ( ) { } *

注: 由於這些符號在文字接口下,是有特殊意義的!另外,文件名的開頭爲小數點『.』時, 表明這個文件爲『隱藏文件』!同時,因爲指令下達當中,經常會使用到 -option 之類的選項, 因此最好也避免將文件檔名的開頭以 - 或 + 來命名 。

相關文章
相關標籤/搜索