Linux經常使用命令(3)--文件管理(查看文件大小權限信息、修改文件所屬用戶和操做權限、壓縮解壓文件)

1、查看文件大小、文件夾子目錄
 
一、查看文件系統磁盤大小、掛載點
  • df :      能夠查看一級文件夾大小(默認單位爲:k)、使用比例、檔案系統及其掛入點(但對文件卻無能爲力)。
  • df -T : 顯示分區的文件系統(不帶單位,默認爲k;結果中包含分區文件類型Type)
  • df -h : 顯示文件系統的可用空間及使用情形(採用用戶易讀的方式)

概念解析:掛載點   Linux是樹型目錄結構,Linux只有一個根目錄'/',其他各個目錄都是基於這個根目錄發散,就是樹形結構。Linux分區是將某個分區掛到一個對應的目錄上。例如/home對應一塊分區,home目錄就是這塊分區的掛載點;/boot對應一塊分區,boot目錄就是這塊分區的掛載點;/usr對應一塊分區,usr目錄就是這塊分區的掛載點。你能夠形象的理解:一棵大樹(根目錄/)有不少樹枝(目錄,掛載點),每一個樹枝上都掛着一個箱子(分區,存儲空間)。

  雖然硬盤分區表中最多能存儲四個分區,但咱們實際使用時通常只分爲兩個分區,一個是主分區(Primary Partion)一個是擴展分區(extended partition)兩種,主分區能夠立刻被使用但不能再分區,擴展分區必須再進行分區後才能使用,也就是說它必須還要進行二次分區。那麼由擴充分區再分下去的是什麼呢?它就是邏輯分區(Logical Partion),何況邏輯分區沒有數量上限制。 html

  Linux不管有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且惟一的文件結構。每一個分區都是用來組成整個文件系統的一部分,由於它採用了一種叫「掛載點」的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯繫起來。這時要載入的一個分區將使它的存儲空間在一個目錄下得到。linux

  Linux的分區是不一樣於其它操做系統的分區,它的分區格式經常使用的有Ext3和Swap兩種,Ext3用於存放系統文件,Swap則做爲交換分區(至關於windows中的虛擬內存文件)。算法

        推薦閱讀: Linux系統分區及掛載點概念解析windows

概念解析:tmpfs
  tmpfs是一種虛擬內存文件系統,而不是塊設備。是基於內存的文件系統,建立時不須要使用mkfs等初始化。它最大的特色就是它的存儲空間在VM(virtual memory虛擬內存),VM 是由linux內核裏面的vm子系統管理的。
  linux下面VM的大小由RM(Real Memory真實內存)和swap組成,RM的大小就是物理內存的大小,而Swap的大小是由本身決定的。Swap是經過硬盤虛擬出來的內存空間,所以它的讀寫速度相對 RM 要慢許多,當一個進程申請必定數量的內存時,如內核的 vm 子系統發現沒有足夠的 RM 時,就會把 RM 裏面的一些不經常使用的數據交換到Swap裏面,若是須要從新使用這些數據再把它們從Swap交換到 RM 裏面。若是有足夠大的物理內存,能夠不劃分Swap分區。

        推薦閱讀: tmpfs介紹及使用網絡

 
二、查看文件(文件夾)大小
  • du :能夠查看文件及文件夾的大小。
  • du -sh 文件夾路徑 : 查看當前目錄下各個文件及目錄佔用空間大小
  • du -h --max-depth=1 文件夾路徑 : max-depth指定深刻子目錄的

 
三、查看文件夾包含的內容(子目錄)
  • ls 文件夾路徑  :   查看文件夾下的子目錄(結果中不包含隱藏的文件)
  • ls -a 文件夾路徑 :  查看文件夾下的子目錄,結果中包含隱藏的文件(-a)
  • ls -l  文件夾路徑  : (此命令可簡寫爲:ll) 查看文件的詳細信息,包括修改權限、所屬用戶、字節大小、更新時間等

 
2、chmod 命令:修改文件/文件夾權限
  chmod命令是很是重要的,用於改變文件或目錄的訪問權限。用戶用它控制文件或目錄的訪問權限。
  該命令有兩種用法。一種是包含字母和操做符表達式的文字設定法;另外一種是包含數字的數字設定法。
  
  一、文字設定法
chmod [who] [+ | - | =] [mode] 文件名稱/文件夾名稱
注:chmod命令可加入其它額外的參數,如:chmod -R ,將文件夾的子目錄的權限也一塊兒修改

  命令中各選項的含義爲:工具

  (1)操做對象who但是下述字母中的任一個或者它們的組合:
  •   u 表示「用戶(user)」,即文件或目錄的全部者。
  •   g 表示「同組(group)用戶」,即與文件屬主有相同組ID的全部用戶。
  •   o 表示「其餘(others)用戶」。
  •   a 表示「全部(all)用戶」。它是系統默認值。
  (2)操做符號能夠是:
  •   + 添加某個權限。
  •   - 取消某個權限。
  •   = 賦予給定權限並取消其餘全部權限(若是有的話)。
   (3)設置mode所表示的權限可用下述字母的任意組合:
  •   r 可讀。
  •   w 可寫。
  •   x 可執行。x只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
  
  二、數字設定法
  咱們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,而後將其相加。因此數字屬性的格式應爲3個從0到7的八進制數,其順序分別表明用戶(u)、用戶組(g)、其它用戶(o)的所擁有的操做權限。
  
 
 
3、修改所屬用戶和用戶組
  一、chown命令:用來修改文件或文件夾的所屬用戶和用戶組。
chown  所屬用戶:所屬用戶組  -R  文件名

  如下列舉了三個chown命令的修改例子:spa

  • chown  sinosoft   ./test/                  修改test文件夾的所屬用戶爲:sinosoft
  • chown  sinosoft:sinosoft  ./test/     修改test文件夾的所屬用戶爲:sinosoft,所屬用戶組爲:sinosoft
  • chown  :sinosoft   ./test/                 修改test文件夾的所屬用戶組爲:sinosoft
  二、chgrp命令:修改所屬用戶組
  使用chgrp命令能夠修改文件或目錄所屬的組:
chgrp  用戶組名稱  目錄或文件名
 
 
4、文件壓縮  與  文件解壓縮
  打包,即文件壓縮,是指將一大堆文件或目錄什麼的變成一個總的文件;
  壓縮,則是將一個大的文件經過一些壓縮算法變成一個小文件。
 
一、tar 命令
  tar 能夠爲文件和目錄建立檔案。利用tar,用戶能夠爲某一特定文件建立檔案(備份文件),也能夠在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上建立檔案,如今,用戶能夠在任何設備上建立檔案,如軟盤。利用tar命令,能夠把一大堆的文件和目錄所有打包成一個文件,這對於備份文件或將 幾個文件組合成爲一個文件以便於網絡傳輸是很是有用的。Linux上的tar是GNU版本的。
1)操做".tar"文件:
  打包 :   tar  -cvf   新文件名稱.tar  源文件1  源文件2  源文件3
  解壓 :  tar  -xvf    源文件名稱.tar    

2)操做".tar.gz"文件
  打包 :   tar  -cvf   新文件名稱.tar  源文件1  源文件2  源文件3
  解壓 :  tar  -xvf    源文件名稱.tar  

  

tar命令語法:

tar [主選項+輔選項] 文件或者目錄 主選項:   c 建立新的檔案文件。   r 把要存檔的文件追加到檔案文件的未尾。   t 列出檔案文件的內容,查看已經備份了哪些文件。   u 更新文件。就是說,用新增的文件取代原備份文件,若是在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。   x 從檔案文件中釋放文件。 輔助選項:   b 該選項是爲磁帶機設定的。其後跟一數字,用來講明區塊的大小,系統預設值爲20(20*512 bytes)。   f 使用檔案文件或設備,這個選項一般是必選的。   k 保存已經存在的文件。例如咱們把某個文件還原,在還原的過程當中,遇到相同的文件,不會進行覆蓋。   m 在還原文件時,把全部文件的修改時間設定爲如今。   M 建立多卷的檔案文件,以便在幾個磁盤中存放。   v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。   w 每一步都要求確認。   z 用gzip來壓縮/解壓縮文件,加上該選項後能夠將檔案文件進行壓縮,但還原時也必定要使用該選項進行解壓縮。
例子: # tar
-cf all.tar *.jpg   這條命令是將全部.jpg的文件打成一個名爲all.tar的包。-c是表示產生新的包,-f指定包的文件名。   # tar -rf all.tar *.gif   這條命令是將全部.gif的文件增長到all.tar的包裏面去。-r是表示增長文件的意思。   # tar -uf all.tar logo.gif   這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。   # tar -tf all.tar   這條命令是列出all.tar包中全部文件,-t是列出文件的意思   # tar -xf all.tar   這條命令是解出all.tar包中全部文件,-x是解開的意思 以上就是tar的最基本的用法。
爲了方便用戶在打包解包的同時能夠壓縮或解壓文件,tar提供了一種特殊的功能。這就是tar能夠在打包或解包的同時調用其它的壓縮程序,好比調用gzip、bzip2等。
1) tar調用gzip   gzip是GNU組織開發的一個壓縮程序,.gz結尾的文件就是gzip壓縮的結果。與gzip相對的解壓程序是gunzip。tar中使用-z這個參數來調用gzip。下面來舉例說明一下:   # tar -czf all.tar.gz *.jpg //將全部.jpg的文件打成一個tar包,而且將其用gzip壓縮,生成一個gzip壓縮過的包   # tar -xzf all.tar.gz //這條命令是將上面產生的包解開。 對於.gz結尾的文件,gunzip解壓命令以下:   gzip -d all.gz   gunzip all.gz 2) tar調用bzip2   bzip2是一個壓縮能力更強的壓縮程序,.bz2結尾的文件就是bzip2壓縮的結果。與bzip2相對的解壓程序是bunzip2。tar中使用-j這個參數來調用bzip2。下面來舉例說明一下:   # tar -cjf all.tar.bz2 *.jpg //將全部.jpg的文件打成一個tar包,而且將其用bzip2壓縮,生成一個bzip2壓縮包   # tar -xjf all.tar.bz2 //這條命令是將上面產生的包解開。 對於.bz2結尾的文件 ,bunzip2解壓命令以下:   bzip2 -d all.bz2   bunzip2 all.bz2   3)tar調用compress   compress也是一個壓縮程序,可是好象使用compress的人不如gzip和bzip2的人多。.Z結尾的文件就是compress壓縮的結果。與 compress相對的解壓程序是uncompress。tar中使用-Z這個參數來調用gzip。下面來舉例說明一下:   # tar -cZf all.tar.Z *.jpg //將全部.jpg的文件打成一個tar包,並將其用compress壓縮,生成一個compress壓縮包   # tar -xZf all.tar.Z //這條命令是將上面產生的包解開 對於.Z結尾的文件,uncompress解壓命令以下:  uncompress all.Z

 

二、zip命令
  對於Window下的常見壓縮文件.zip,Linux也有相應的方法來解壓它們:
  linux下提供了zip和unzip程序,zip是壓縮程序,unzip是解壓程序。
   (1)安裝zip命令
安裝zip/unzip服務
$ sudo yum install zip unzip

  (2)文件打包操作系統

# zip  all.zip  *.jpg    //將全部.jpg的文件壓縮成一個zip包
# zip -r all.zip  ./*    //將當前目錄下的全部文件和文件夾所有壓縮成all.zip文件,-r表示遞歸壓縮子目錄下全部文件

  (3)解壓文件.net

# unzip  all.zip                      //把all.zip文件解壓到當前目錄下
# unzip -o -d  /home/sunny  all.zip    //把all.zip文件解壓到 /home/sunny/
                                       // -o:不提示的狀況下覆蓋文件;
                                       // -d:指明將文件解壓縮到/home/sunny目錄下;

 

三、jar命令
  JAR包是Java中所特有一種壓縮文檔,其實你們就能夠把它理解爲.zip包。固然也是有區別的,JAR包中有一個META-INF\MANIFEST.MF文件,當你找成JAR包時,它會自動生成。
  JAR包是由JDK安裝目錄\bin\jar.exe命令生成的,當咱們安裝好JDK,設置好path路徑,就能夠正常使用jar.exe命令,它會用lib\tool.jar工具包中的類。
 
  (1)建立打包文件,並顯示打包過程
$ jar -cvf 新文件名稱.jar  源文件或源文件夾

  (2)顯示jar包3d

$ jar -tvf 文件名稱.jar

  (3)解壓jar包

$ jar -xvf 文件名稱.jar 
相關文章
相關標籤/搜索