歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux常用命令(三)文件操作

Linux常用命令(三)文件操作

日期:2017/3/3 13:00:01   编辑:Linux技術

3 文件備份、壓縮、定位、查找、閱讀3.1文[b]件備份、壓縮[/b]

在Linux中,常用的文件壓縮工具有gzip、bzip2、zip。bzip2是最理想的壓縮工具,它提供了最大限度的壓縮。zip兼容性好,Windows也支持。

命令 功能

bzip2/bunzip2 擴展名為bz2的壓縮/解壓縮工具

gzip/gunzip 擴展名為gz的壓縮/解壓縮工具

zip/unzip 擴展名為zip的壓縮/解壓縮工具

tar 創建備份和歸檔

3.1.1 bzip2命令 要使用bzip2來壓縮文件,在shell提示下輸入命令:bzip2 filename 文件即會被壓縮,並被保存為filename.bz2。

要解壓縮文件,輸入命令: bunzip2 filename.bz2 則 filename.bz2會被刪除,而以filename代替。

bzip2 filename.bz2 file1 file2 file3 /usr/work/school 命令把file1、file2、file3以及/usr/work/school目錄中的內容壓縮起來放入filename.bz2。

3.1.2 gzip命令要使用gzip來壓縮文件,輸入命令:gzip filename 文件即會被壓縮,並被保存為filename.gz。

要解壓縮文件,輸入命令:gunzip filename.gz filename.gz會被刪除,而以filename代替。

gzip -r filename.gz file1 file2 file3 /usr/work/school 命令把file1、file2、file3以及/usr/work/school目錄中的內容壓縮起來放入filename.gz。

3.1.3 zip命令 zip命令的使用方法同gzip。

3.1.4 tar命令 tar命令最早是用來做磁帶備份的,但是由於硬盤容量越來越大,因此現在主要用這個命令來備份所有的文件。

tar這個命令把大量的文件和目錄打包成一個文件。

-c 創建一個新歸檔

-f 當與-c選項一起使用時,創建的tar文件使用該選項指定的文件名;

當與-x選項一起使用時,則解除該選項指定的歸檔

-t 顯示包括在tar文件中的文件列表

-v 顯示文件的歸檔進度

-x 從歸檔中抽取文件

-z 使用gzip壓縮tar文件

-j 使用bzip2壓縮tar文件

例:

tar -cvf /home/abc.tar /home/abc 只打包,不壓縮

tar -zcvf /home/abc.tar.gz /home/abc 打包,並用gzip壓縮

tar -jcvf /home/abc.tar.bz2 /home/abc 打包,並用bzip2壓縮

當然,如果想解壓縮,就直接替換上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 換成“x” 就可以了。

要創建一個tar文件,輸入命令:tar –cvf filename.tar directory/file /home/mine 上面的命令將directory/file、/home/mine放入歸檔文件中。

要列出tar文件的內容,輸入命令:tar –tvf filename.tar

要抽取tar文件的命令,輸入命令:tar –xvf filename.tar 這個命令不會刪除tar文件,但會把解除歸檔的內容復制到當前工作目錄下,並保留歸檔文件所使用的任何目錄結構。

要擴展並解除歸檔bzip tar文件,輸入命令:tar –xjvf filename.tbz

要創建一個用tar和gzip歸檔並壓縮的文件,使用-z選項:tar –czvf filename.tgz file 如果使用gunzip命令解壓filename.tgz文件,則filename.tgz會被刪除,以filename.tar代替。

3.2文件定位、查找選項 含義

Which 依序從path環境變量所列的目錄中找出command的位置,並顯示完整路徑的名稱

whereis 找出特定程序的可執行文件、源代碼文件以及manpage的路徑

find 按條件搜索,並執行一定的動作。

locate 帶記憶的文件搜索

updatedb 更新slocate的索引數據庫

3.2.1 which 語法 which command

說明 依序從path環境變量所列的目錄中找出command的位置,並顯示完整路徑的名稱。在找到第一個符合條件的程序文件時,就立刻停止搜索,省略其余未搜索目錄。

范例:

找出ls命令的程序文件的位置:which ls ,

系統輸出:/usr/bin/ls

3.2.2 whereis 語法 whereis [option] name

說明 找出特定程序的可執行文件、源代碼文件以及manpage的路徑。你所提供的name會被先除去前置的路徑以及任何.ext形式的擴展名。

whereis 只會在標准的Linux目錄中進行搜索。

-b 只搜索可執行文件

-m 只搜索manpage

-s 只搜索源代碼文件

-B directory 更改或限定搜索可執行的文件的目錄

-M directory 更改或限定搜索manpage的目錄

-S directory 更改或限定搜索源代碼文件的目錄

3.2.3 find 語法 find paths expression [action

說明 以paths為搜索起點逐層往下找出每一個符合expression條件的文件,並對該文件執行action所代表的動作。

expression是搜索條件,它由一個代表匹配項目的選項以及一個代表匹配模式的參數構成。

action是處理動作,它有一個代表“處理方式”的選項以及一個操作參數構成。若不指定action,則默認動作是顯示出文件名。

常用的搜索條件

-name pattern

-path pattern

-lname pattern

找出名稱、路徑名稱或符號鏈接的目標匹配pattern模式的文件。

pattern可以包含shell的文件名通配符,路徑是相對於搜索起點的。

常見處理動作

-print 顯示出文件的相對路徑(相對於搜索起點)。

-exec cmd /; 執行指定的shell命令。若cmd含有任何shell特殊字符,則他們之前都必須加上/符號,以免shell立刻執行他們。

在cmd裡,可以用”{}”符號(包括雙引號)表示 find所找出的文件。

3.2.4 locate 語法 locate patterns

說明 第一次執行locate時,它會建立一個索引數據庫,當往後再次執行時,它便從索引數據庫中迅速找出文件的位置。

locate很適合用來反復搜索很少變動的目錄樹,但是對於剛改名的舊文件以及新建的文件,locate就找不到了,除非重建數據庫。

3.2.5 updatedb 語法 updatedb [option]

說明 更新slocate的索引數據庫。

選項 -e directories 略過directories所列的目錄。

find / -name file1 從 '/' 開始進入根文件系統搜索文件和目錄

find / -user user1 搜索屬於用戶 'user1' 的文件和目錄

find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結尾的文件

find /usr/bin -type f -atime +100 搜索在過去100天內未被使用過的執行文件

find /usr/bin -type f -mtime -10 搜索在10天內被創建或者修改過的文件

find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 結尾的文件並定義其權限

find / -xdev -name \*.rpm 搜索以 '.rpm' 結尾的文件,忽略光驅、捷盤等可移動設備

locate \*.ps 尋找以 '.ps' 結尾的文件 - 先運行 'updatedb' 命令

whereis halt 顯示一個二進制文件、源碼或man的位置

which halt 顯示一個二進制文件或可執行文件的完整路徑

3.3 文件閱讀 head 查看文件的開頭部分

tail 查看文件結尾的10行

less 一個分頁工具,它允許一頁一頁地(或一個屏幕一個屏幕地)查看信息

more 一個分頁工具,它允許一頁一頁地(或一個屏幕一個屏幕地)查看信息

3.3.1 head命令 head命令可以用來查看文件的開頭部分。

此命令的格式是:

head 文件名 默認設置,它只查看文件的前10行。但可以通過指定一個數字選項來改變要顯示的行數,命令如下:

head –20 文件名 這個命令將會查看文件的前20行。

3.3.2 tail命令 tail命令和head命令恰恰相反。

使用tail命令,可以查看文件結尾的10行。這有助於查看日志文件的最後10行來閱讀重要的系統信息。還可以使用tail觀察日志文件更新的過程。

使用-f選項,tail會自動實時地把打開文件中的新信息顯示到屏幕上。

例如,要活躍地觀察/var/log/messages,以根用戶身份在shell下輸入以下命令: tail –f /var/log/messages

3.3.3 less命令 less允許使用箭頭來前後移動。與more命令相似。

3.3.4 more命令 more和less的主要區別是,less允許使用箭頭來前後移動,而more使用空格鍵和b鍵來前後移動。

使用ls和more來列舉/etc目錄下的內容: ls –al /etc | more

要使用more在文本文件中搜索關鍵字,按/鍵並輸入命令搜索條目:/foo 使用空格鍵來先前翻閱頁碼。按q鍵退出。

more命令標准格式為: more [選項] [fileNames]

-num 一次顯示的行數

-d 提示使用者,在畫面下方顯示[Press space to continue, q to quit.],如果使用者按錯鍵,則會顯示[Press h for instructions.]

-l 取消遇見特殊字元^L(送紙字元)時會暫停的功能

-f 計算行數時,以實際上的行數,而非自動換行過後的行數(有些單行字數太長的會被擴展為兩行或兩行以上)

-p 不以卷動的方式顯示每一頁,而是先清除螢幕後再顯示內容

-c 跟-p相似,不同的是先顯示內容再清除其他舊資料

-s 當遇到有連續兩行以上的空白行,就代換為一行的空白行

-u 不顯示下引號(根據環境變數TERM指定的terminal而有所不同)

+/ 在每個檔案顯示前搜尋該字串(pattern),然後從該字串之後開始顯示

+num 從第num行開始顯示 fileNames 欲顯示內容的檔案,可為復數個數

例如: more -s testfile 逐頁顯示testfile之檔案內容,如有連續兩行以上空白行則以一行空白行顯示。

more +20 testfile 從第20行開始顯示testfile之檔案內容。

Copyright © Linux教程網 All Rights Reserved