第005課 linux進階命令(find文件查找,tar文件解壓操作詳解)


原文地址: http://wiki.100ask.org

001節_Linux進階命令__find命令

我們在Windows中搜索文件,一般查找文件需要傳入兩個條件:

1)在那些目錄中查找;

2)查找的內容;

在Linux中,查找文件的也需要這兩個條件,不同於Windows使用搜索框查找,Linux中使用 find 命令查找文件。

find 命令:
*目的:查找符合條件的文件
*格式: find 目錄名 選項 查找條件

舉例1:

 find /work/001_linux_basic/dira/  -name "test1.txt"

說明:

a)/work/001_linux_basic/dira/指明了查找的路徑

b)-name表明以名字來查找文件

c)"test1.txt"就指明查找名為test1.txt的文件

舉例2:

 find /work/001_linux_basic/dira/  -name "*.txt"	

說明:

a)查找指定目錄下面所以以.txt結尾的文件,其中*是通配符。

舉例3:

 find /work/001_linux_basic  -name "dira"

說明:

a)查找指定目錄下面是否存在dira這個目錄,dira是目錄名。

注意:

1)如果沒有指定查找目錄,則為當前目錄。

find . -name "*.txt" 其中.代表當前路徑

find -name "*.txt" 沒加路徑,默認是當前路徑下查找

2)find還有一些高級的用法,如查找最近幾天(幾個小時)之內(之前)有變動的文件

find /home -mtime -2 查找/home目錄下兩天內有變動的文件

002節_Linux進階命令__grep命令

grep 命令:

目的:使用grep命令來查找文件中符合條件的字符串

 格式:grep  [選項]  [查找模式]  [文件名]

假設dira目錄的test1.txt 和 dirb目錄的test1.txt都含有如下內容:

 aaa
 AAAAAA
 abc
 abcabcabc
 cbacbacba 
 match_pattern
 nand->erase

通過查找字符串,希望顯示如下內容:

  • 所在的文件名----grep查找時默認已經顯示目標文件名
  • 所在的行號------使用-n選項

可以使用以下命令:

grep -rn "字符串" 文件名

r(recursive):遞歸查找

n(number):顯示目標位置的行號

字符串:要查找的字符串

文件名:要查找的目標文件,如果是*則表示查找當前目錄下的所有文件和目錄

舉例:

grep -n "abc" test1.txt 在test1.txt中查找字符串abc

grep -rn "abc" * 在當前目錄遞歸查找字符串abc

注意:

1)可以加入-w全字匹配。

003節_Linux進階命令__file命令

file 命令:

  • 目的:識別文件類型
  • 格式: file 文件名

在Linux中有一個非常重要的觀點:'''Linux下一切皆文件'''。

舉例:

file ~/.bashrc      為ASCII 編碼的text類型
file ~/.vimrc       為UTF-8 Unicode 編碼的text類型
file ~/Pictures/*   如圖形文件JPEG/PNG/BMP格式
file ~/100ask/      為directory表明這是一個目錄
file /bin/pwd       出現 ELF 64-bit LSB executable,即為ELF格式的可執行文件
file /dev/*         出現character special(字符設備文件)、 block special(塊設備文件)等

004節_Linux進階命令__which命令和whereis命令 #

which 和 whereis 命令:
*目的:查找命令或應用程序的所在位置
*格式:which 命令名/應用程序名

在終端上執行pwd實際上是去執行了/bin/pwd

舉例:
which pwd 定位到/bin/pwd
which gcc 定位到/usr/bin/gcc
whereis pwd 查找到可執行程序的位置/bin/pwd和手冊頁的位置/usr/share/man/man1/pwd.1.gz

005節_Linux進階命令__gzip命令和bzip2命令

壓縮的概念

  • 壓縮的目的:
    在網絡傳遞文件時,可以先將文件壓縮,然后傳遞壓縮后的文件,從而減少網絡帶寬。接受者接受文件后,解壓即可。

  • 壓縮的類型

有損壓縮、無損壓縮。

a)有損壓縮: 如mp4視頻文件,即使壓縮過程中,減少了很多幀的數據, 對觀看者而言,也沒有影響。當然mp3音樂文件也是有損壓縮。

b)無損壓縮:
如普通文件的壓縮,為了保證信息的正確傳遞,
不希望文件經過壓縮或解壓后,出現問題。
后面講解的都是無損壓縮。

Linux下常用的壓縮命令 ##

  • 單個文件的壓縮(解壓)使用gzip和bzip2
  • 多個文件和目錄使用tar

gzip的常用選項:
-l(list) 列出壓縮文件的內容
-k(keep) 在壓縮或解壓時,保留輸入文件。
-d(decompress) 將壓縮文件進行解壓縮

1)查看

gzip  -l 壓縮文件名

比如: <code>gzip -l pwd.1.gz</code>

2)解壓

gzip -kd  壓縮文件名

比如: <code>gzip -kd pwd.1.gz</code>
該壓縮文件是以.gz結尾的單個文件

3)壓縮

gzip -k  源文件名

比如:<code>gzip -k mypwd.1</code> 得到了一個.gz結尾的壓縮文件

注意:

1)如果gzip不加任何選項,此時為壓縮,壓縮完該文件會生成后綴為.gz的壓縮文件,
並刪除原有的文件,所以說,推薦使用gzip -k來壓縮源文件。

2)相同的文件內容,如果文件名不同,壓縮后的大小也不同。

3)gzip只能壓縮單個文件,不能壓縮目錄。

提示:

man pwd會解壓/usr/share/man/man1/pwd.1.gz這個文件,
然后讀取該文件中固定的格式的一些信息,然后顯示到終端中。

  • bzip2來壓縮單個文件

bzip2的常用選項:

-k(keep) 在壓縮或解壓時,保留輸入文件。
-d(decompress) 將壓縮文件進行解壓縮

1)壓縮

bzip2 -k 源文件名

比如:<code>bzip2 -k mypwd.1</code>
得到一個.bz2后綴的壓縮文件

2)解壓

bzip2  -kd  壓縮文件名

比如:<code>bzip2 -kd mypwd.1.bz2</code>	

注意:

1)如果bzip2不加任何選項,此時為壓縮,壓縮完該文件會生成后綴為.bz2的壓縮文件,
並刪除原有的文件,所以說,推薦使用bzip2 -k來壓縮源文件。

2)bzip2只能壓縮單個文件,不能壓縮目錄。

*單個文件的壓縮使用gzip或bzip2

壓縮有兩個參數:

1)壓縮時間

2)壓縮比

一般情況下,'''小文件使用gzip來壓縮,大文件使用bzip2來壓縮'''。

比如:

mypwd.1源大小是1477字節,

gzip壓縮后mypwd.1.gz是877字節,

bzip2壓縮后mypwd.1.bz2是939字節。

myls.1源文件大小7664字節,

gzip壓縮后myls.1.gz是3144字節,

bzip2壓縮后myls.1.bz2是3070字節。

gzip、bizp2只能對一個文件進行壓縮,而不能對多個文件和目錄進行壓縮。
所以需要tar來對多個目錄、文件進行打包和壓縮。

tar常用選項
-c(create) 表示創建用來生成文件包
-x:表示提取,從文件包中提取文件
-t可以查看壓縮的文件。 -z使用gzip方式進行處理,它與”c“結合就表示壓縮,與”x“結合就表示解壓縮。
-j使用bzip2方式進行處理,它與”c“結合就表示壓縮,與”x“結合就表示解壓縮。
-v(verbose)詳細報告tar處理的信息
-f(file)表示文件,后面接着一個文件名。
-C <指定目錄> 解壓到指定目錄

1.tar打包、gzip壓縮

1)壓縮

tar -czvf   壓縮文件名   目錄名

如: <code>tar czvf dira.tar.gz  dira</code> 

注意:tar -czvftar czvf是一樣的效果,所以說,后面統一取消-。

2)查看

tar tvf   壓縮文件名

如:<code>tar tvf dira.tar.gz</code>

3)解壓

tar xzvf 壓縮文件名

tar xzvf 壓縮文件名  -C  指定目錄

如: <code>tar xzvf dira.tar.gz</code>    解壓到當前目錄

如: <code>tar xzvf dira.tar.gz   -C  /home/book</code>    解壓到/home/book

2.tar打包、bzip2壓縮

1)壓縮

tar cjvf   壓縮文件名   目錄名

如: <code>tar cjvf dira.tar.bz2  dira</code> 

2)查看

tar tvf   壓縮文件名

如: <code>tar tvf dira.tar.bz2</code>

3)解壓

tar xjvf 壓縮文件名

tar xjvf 壓縮文件名  -C  指定目錄

如: <code>tar xjvf dira.tar.bz2</code>    解壓到當前目錄

如: <code>tar xjvf dira.tar.bz2 -C  /home/book</code>   解壓到/home/book


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM