find

第二章 文件、目錄管理

2.23-2.25 find 命令

find命令

語法: find [路徑] [參數] ;find [選項] [路徑] [filename]php

  • find [路徑] [參數]
    • 參數:
      -atime +n/-n:訪問或執行時間大於/小於n天的文件
      -ctime +n/-n:寫入、更改inode屬性(eg:更改全部者、權限或者連接)時間大於/小於n天的文件
      -mtime +n/-n:寫入時間大於/小於n天的文件
      eg:
[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
  • find [選項] [路徑] [filename]
    • 選項:
      -name filename:直接查找該文件名的文件
      eg:
[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命令

經過查找預先生成的文件列表庫來告訴用戶要查找的文件在哪裏,屬於模糊搜索。
語法: 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

which命令

查找可執行文件的絕對路徑及別名設置。數據庫

[root@3 ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls

注: 該命令只能用來查找PATH環境變量中出現的路徑下的可執行文件。瀏覽器

whereis命令

它相似於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

擴展:

1) find -perm裏的+/-的含義:

好比當前目錄下有四個文件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

2) 三個時間屬性

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

3) 快捷鍵的使用

經常使用快捷鍵:
Ctrl+c:終止當前命令
tab:補全命令或目錄
Ctrl+d: 退出當前終端,同exit
Ctrl+z: 暫停當前進程,暫停後能夠用fg恢復它。
Ctrl+l: 清屏
Ctrl+u: 刪除光標前面的全部字符
Ctrl+k: 刪除光標後面的全部字符
Ctrl+a: 快速把光標定位到行首
Ctrl+e: 快速把光標定位到行尾
Ctrl+s: 鎖屏
Ctrl+q: 開屏

2.26 文件名後綴

>一談到文件類型,你們就能想到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-----類庫文件

相關文章
相關標籤/搜索