語法: find [路徑] [參數] ;find [選項] [路徑] [filename]php
[root@3 ~]# find /tmp/ -mtime -1 查找/tmp/目錄下mtime小於一天的文件 /tmp/ /tmp/systemd-private-5b2dd290403a4a81971c2021ccddc492-vmtoolsd.service-tmYbrv /tmp/systemd-private-5b2dd290403a4a81971c2021ccddc492-vmtoolsd.service-tmYbrv/tmp /tmp/systemd-private-5b2dd290403a4a81971c2021ccddc492-vmtoolsd.service-tmYbrv/tmp/vmware-root
[root@3 ~]# find . -name test2.txt 在該目錄精確查找test2.txt ./test/test2.txt [root@3 ~]# find . -name "test*" 在該目錄下查找含有test的文件(模糊搜索) ./test ./test/test2.txt
-type filename:經過文件類型查找(文件類型:f,b,c,d,l,s等)
eg:html
[root@3 ~]# find . -type d 在該目錄下搜索目錄文件 . ./.ssh ./test
經過查找預先生成的文件列表庫來告訴用戶要查找的文件在哪裏,屬於模糊搜索。
語法: locate [filename]
若是locate命令不存在,須要執行以下操做:node
[root@3 ~]# locate ls locate: 沒法執行 stat () `/var/lib/mlocate/mlocate.db': 沒有那個文件或目錄 [root@3 ~]# updatedb 生成列表庫
注: 安裝好mlocate包後,運行locate命令會報錯,這是由於系統尚未生成那個文件列表庫。使用updatedb命令當即生成(更新)這個列表庫。[由於該命令運行須要較大運行內存,因此服務器在跑着重要業務時儘可能不要運行此命令]。該數據庫每週更新一次,若是某文件是在兩次跟更新時間段內常見的,是搜不到的,須要到/etc/updated.conf去配置該數據庫生成(更新)的規則。linux
查找可執行文件的絕對路徑及別名設置。數據庫
[root@3 ~]# which ls alias ls='ls --color=auto' /usr/bin/ls
注: 該命令只能用來查找PATH環境變量中出現的路徑下的可執行文件。瀏覽器
它相似於locate命令,在一個預先生成的文件列表庫查找跟給出的文件名相關的文件(模糊查找)。
語法: whereis [選項] [filename]
選項:
-b 只找binary文件
-m 只找說明文件manual路徑下的文件
-s 只找source來源文件
-u 沒有說明檔的文件
eg:服務器
[root@3 ~]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
好比當前目錄下有四個文件a、b、c、d
a文件的權限爲6000,即a文件僅有suid、sgid特殊權限
b文件的權限爲2000,即b文件僅有sgid特殊權限
c文件的權限爲4000,即c文件僅有suid特殊權限
d文件的權限爲6600,即d文件在擁有suid、sgid特殊權限的同時還有rw權限
那麼如今find . -type f -perm 6000 能夠找到a文件,若是如今查找find . -type f -perm -6000能夠找到a、d兩個文件,緣由是:
咱們先將abcd四個文件的權限轉化爲二進制那麼,
a權限轉爲2進制後爲 110 000 000 000
b權限轉爲2進制後爲 010 000 000 000
c權限轉爲2進制後爲 100 000 000 000
d權限轉爲2進制後爲 110 110 000 000
在find . -type f -perm -6000 中的6000權限轉爲2進製爲110 000 000 000,那麼6000前的-號表明缺一不可,也就是若是有1的地方必須有1,那麼這裏找-6000權限的文件,這6000權限裏前面有2個位置都是1,因此這裏find找-6000權限的文件就是找前面2個位置都是1的文件.而只有a、d這兩個文件前2個位置都是1,因此find . -type f -perm -6000 只會找到a d兩個文件。
若是用find . -type f -perm +6000會找到abcd這4個文件,這是由於: +6000裏的這個+號表明有1便可,也就是有1的位置只要有1就能夠.那麼這裏找+6000權限的文件,這6000權限前面2個位置都有1,因此這裏find找+6000權限的文件就是找前面2個位置只要有一個位置有1的文件就能夠了。ssh
atime(=access time),即在讀取文件或者執行文件時更改。
ctime(=change time),即在寫入文件、更改全部者、權限或連接設置時隨inode的內容更改而更改。
mtime(=modified time),即寫入文件時隨文件內容的更改而更改。
在Linux下,能夠經過‘df -i’查看各個分區的inode數量。
stat命令: 用來列出文件的atime、ctime、mtimepost
[root@3 ~]# stat ./test/test2.txt 文件:"./test/test2.txt" 大小:0 塊:0 IO 塊:4096 普通空文件 設備:803h/2051d Inode:50757613 硬連接:1 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 最近訪問:2017-06-09 18:00:14.896259676 +0800 最近更改:2017-06-09 18:00:14.896259676 +0800 最近改動:2017-06-09 18:00:14.896259676 +0800 建立時間:-
注: atime不必定在文件被訪問以後被修改,由於:使用ext3文件系統的時候,若是在mount的時候使用了noatime參數,那麼就不會更新atime的信息。總之,這個三個time屬性都放在inode中。若mtime修改inode就必定會改,既然inode改了,那ctime也就跟着改了(atime比較特殊,atime改變ctime不必定改變)。ui
經常使用快捷鍵:
Ctrl+c:終止當前命令
tab:補全命令或目錄
Ctrl+d: 退出當前終端,同exit
Ctrl+z: 暫停當前進程,暫停後能夠用fg恢復它。
Ctrl+l: 清屏
Ctrl+u: 刪除光標前面的全部字符
Ctrl+k: 刪除光標後面的全部字符
Ctrl+a: 快速把光標定位到行首
Ctrl+e: 快速把光標定位到行尾
Ctrl+s: 鎖屏
Ctrl+q: 開屏
>一談到文件類型,你們就能想到Windows的文件類型,好比file.txt、file.doc、file.sys、file.mp三、file.exe等,根據文件的後綴就能判斷文件的類型。但在linux一個文件是否能被執行,和後綴名沒有太大的關係,主要看文件的屬性有關。但咱們瞭解一下Linux文件的後綴名仍是有必要的,特別是咱們本身建立一些文件,最好仍是加後綴名,這樣作的目的是僅僅是爲了咱們的在應用時方便。
Linux下常見的文件擴展名:
.php ------這個你們都知道吧,是能用php語言解釋器進行解釋,能用瀏覽器打開的文件;
.so -------這類是庫文件;
.doc *.obt --------這是OpenOffice 能打開的文件;
.bz2 ------bzip2的壓縮文件
.gz ------gzip的壓縮文件
.tar ------tar打包文件(是包文件不是壓縮文件)
.tbz------tar打包並用bzip壓縮文件
.tgz-----tar打包並用gzip壓縮的文件
.au -----audio文件
.gif -----gif圖象文件
.html/.htm-----HTML文件
.jpg-----JPEG圖象文件
.pdf------電子文檔(PDF格式的)
.png-----PNG圖象文件
.ps------postscinpt文件(打印格式文件)
.txt------純文本文件
.wav-----audio文件
.xpm-----圖象文件
.conf-------配置文件
.lock-------LOCK文件(用來判斷一個文件或設備是否被使用)
.rpm------REDHATPackage.Manager文件(套件包或軟件包)
.c -------C源程序代碼文件
.cpp------C++源程序代碼文件
.h -------C或C++程序的頭文件
.o------程序目標文件
.pl------perl腳本文件
.so-----類庫文件