1. 程式人生 > 實用技巧 >Linux命令(檔案管理)

Linux命令(檔案管理)

find
目的:查詢符合條件的檔案

1)在那些目錄中查詢
2)查詢的內容

格式: find 目錄名 選項 查詢條件

舉例:
1)find /work/001_linux_basic/dira/ -name "test1.txt"
說明:
a)/work/001_linux_basic/dira/指明瞭查詢的路徑
b)-name表明以名字來查詢檔案
c)"test1.txt",就指明查詢名為test1.txt的檔案
同理:
find /work/001_linux_basic/dira/ -name ".txt"
查詢指定目錄下面所以以.txt結尾的檔案,其中
是萬用字元。
find /work/001_linux_basic -name "dira"
查詢指定目錄下面是否存在dira這個目錄,dira是目錄名。

注意:
1)如果沒有指定查詢目錄,則為當前目錄。
find . -name ".txt" 其中.代表當前路徑
find -name "
.txt"
都是一樣的功能

2)find還有一些高階的用法,如查詢最近幾天(幾個小時)之內(之前)有變動的檔案
find /home -mtime -2 查詢/home目錄下兩天內有變動的檔案

grep
目的:使用grep命令來查詢檔案中符合條件的字串
格式:grep [選項] [查詢模式] [檔名]

將dira目錄的test1.txt和dirb目錄的test1.txt都含有如下內容:
aaa
AAAAAA
abc
abcabcabc
cbacbacba
match_pattern
nand->erase

查詢字串時希望顯示如下內容:
1)所在的檔名----grep查詢時預設已經顯示目標檔名
2)所在的行號------使用-n選項

grep -rn "字串" 檔名
r(recursive):遞迴查詢
n(number):顯示目標位置的行號
字串:要查詢的字串
檔名:要查詢的目標檔案,如果是*則表示查詢當前目錄下的所有檔案和目錄

舉例:
grep -n "abc" test1.txt 在test1.txt中查詢字串abc
grep -rn "abc" * 在當前目錄遞迴查詢字串abc

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

file
目的:識別檔案型別
格式: file 檔名

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(塊裝置檔案)等

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

在終端上執行pwd實際上是去執行了/bin/pwd
舉例:
which pwd 定位到/bin/pwd

壓縮
1.壓縮的概念
1)壓縮的目的:
在網路傳遞檔案時,可以先將檔案壓縮,然後傳遞壓縮後的檔案,從而減少網路頻寬。
接受者接受檔案後,解壓即可。

2)壓縮的型別
有失真壓縮、無失真壓縮。
a)有失真壓縮:
如mp4視訊檔案,即使壓縮過程中,減少了很多幀的資料,
對觀看者而言,也沒有影響。當然mp3音樂檔案也是有失真壓縮。
b)無失真壓縮:
如普通檔案的壓縮,為了保證資訊的正確傳遞,
不希望檔案經過壓縮或解壓後,出現問題。

2.linux下常用的壓縮命令
小節:
單個檔案的壓縮(解壓)使用gzip 和bzip2
多個檔案和目錄使用tar

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

1)檢視
gzip -l 壓縮檔名
比如:gzip -l pwd.1.gz

2)解壓
gzip -kd 壓縮檔名
比如:gzip -kd pwd.1.gz
該壓縮檔案是以.gz結尾的單個檔案

3)壓縮
gzip -k 原始檔名
比如:gzip -k mypwd.1
得到了一個.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 原始檔名
比如:bzip2 -k mypwd.1
得到一個.bz2字尾的壓縮檔案
2)解壓
bzip2 -kd 壓縮檔名
bzip2 -kd mypwd.1.bz2

注意:
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 壓縮檔名 目錄名
如:tar czvf dira.tar.gz dira

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

2)檢視
tar tvf 壓縮檔名
如:tar tvf dira.tar.gz

3)解壓
tar xzvf 壓縮檔名
tar xzvf 壓縮檔名 -C 指定目錄
如:tar xzvf dira.tar.gz 解壓到當前目錄
如:tar xzvf dira.tar.gz -C /home/book 解壓到/home/book

2.tar打包、bzip2壓縮
1)壓縮
tar cjvf 壓縮檔名 目錄名
如:tar cjvf dira.tar.bz2 dira

2)檢視
tar tvf 壓縮檔名
如:tar tvf dira.tar.bz2

3)解壓
tar xjvf 壓縮檔名
tar xjvf 壓縮檔名 -C 指定目錄
如:tar xjvf dira.tar.bz2 解壓到當前目錄
如:tar xjvf dira.tar.bz2 -C /home/book 解壓到/home/book

which gcc 定位到/usr/bin/gcc
whereis  pwd查詢到可執行程式的位置/bin/pwd和手冊頁的位置/usr/share/man/man1/pwd.1.gz