跳轉到內容

Ict-創新/LPI/103.3

來自華夏公益教科書,開放的書籍,開放的世界

103.3 執行基本檔案管理

[編輯 | 編輯原始碼]

考生應能夠使用基本的 Linux 命令來管理檔案和目錄。


關鍵知識領域

  • 分別複製、移動和刪除檔案和目錄。
  • 遞迴地複製多個檔案和目錄。
  • 遞迴地刪除檔案和目錄。
  • 在命令中使用簡單和高階的萬用字元規範。
  • 使用 find 根據型別、大小或時間查詢並操作檔案。
  • 使用 tar、cpio 和 dd。

在檔案系統中移動

[編輯 | 編輯原始碼]

絕對路徑和相對路徑

可以透過給出其完整路徑名(從根目錄 (/) 開始)或其相對路徑(從當前目錄開始)來訪問目錄或檔案。

絕對路徑:獨立於使用者的當前目錄,以 / 開頭

相對路徑:取決於使用者的位置,不以 / 開頭

與任何結構化檔案系統一樣,有很多實用程式可以幫助您瀏覽系統。

pwd:以絕對路徑的形式給出您的實際位置。

cd:'更改目錄' 命令

ls: 列出目錄的內容。

該命令可以接受幾個引數,其中最常見的是

-l – 使用長列表格式,

-a – 列出所有檔案和目錄,包括隱藏的檔案和目錄,

-h – 以人類可讀的格式顯示檔案大小,即格式化以方便閱讀

-d – 僅列出目錄,不列出其內容。


查詢檔案和目錄

我們將描述 findwhichwhereislocate 實用程式。

find

語法

find <DIRECTORY> <CRITERIA> [-exec <COMMAND> {} \;]


DIRECTORY 引數告訴 find 從哪裡開始搜尋,而 CRITERIA 可以是序列選擇條件的組合,包括要查詢的檔案或目錄的名稱。


示例

# find /usr/X11R6/bin -name ¨x*¨.

# find / -user 502

匹配檔案的名稱將列在標準輸出中。或者,可以對找到的每個檔案執行特定操作。例如,刪除檔案或更改許可權。find 工具具有內建選項 –exec ,允許您執行此操作。例如,刪除屬於使用者 502 的所有檔案

# find / -type f -user 502 –exec rm –f {} \;

find 的常見條件開關
-type 指定檔案型別
-name 檔案的名稱(可以包含萬用字元)
-user 使用者所有者
-atime、ctime、mtime 訪問時間、建立時間和修改時間(24 小時的倍數)
-amin、cmin、mmin 訪問時間、建立時間和修改時間(1 分鐘的倍數)
-newer FILE FILE 更新的檔案


處理目錄

建立目錄

建立目錄時,可以使用 -m 選項設定許可權模式。另一個有用的選項是 -p,它會根據需要自動建立所有子目錄。

示例

# mkdir –p docs/programs/versions


刪除目錄

要刪除目錄,請使用 rmdir 或 rm -rrmdir 僅刪除空目錄。指定 -f 強制刪除您沒有寫入許可權的檔案。

注意:rm –rf /dir1/* 刪除所有檔案和子目錄,使 dir1 為空

rm –rf /dir1/ 刪除所有檔案和子目錄,包括 dir1

使用 cp 和 mv

cp

語法

cp [options] file1 file2

cp [options] files directory

需要注意的是,cp file1 file2 會建立 file1 的一個新副本,並保留 file1 不變。您也可以使用列表或萬用字元將多個檔案複製到目錄中。下表列出了最常用的選項。

cp 的最常見選項
-d 不遵循符號連結(與 -R 一起使用時)
-f 強制
-i 互動式,在覆蓋之前提示
-p 保留檔案屬性
-r 遞迴地複製目錄


注意: cp –r /mydir/* /dir2/ 將複製所有檔案和子目錄,省略 mydir

cp –r /mydir/ /dir2/ 將複製所有檔案和子目錄,包括 mydir

mv

語法

mv [options] oldname newname

mv [options] source destination

mv [options] source directory


mv 命令既可以移動也可以重新命名檔案和目錄。如果 oldname 是檔案,而 newname 是目錄,則檔案 oldname 將被移動到該目錄中。

如果源和目標位於同一個檔案系統上,則檔案不會被複制,而是連結將簡單地移動到新位置。最常見的選項是 -f 強制覆蓋和 -i 互動式查詢。

touch 和 dd

touch

另一種建立或修改檔案的方法是使用 touch

語法: touch {options} file(s)

如果 file 不存在,則建立它。您還可以使用 -a 選項將檔案的訪問時間更新為當前時間,-m 更改修改時間,-r 用於應用另一個檔案的屬性。

示例

touch file1.txt file2.txt 建立新檔案

touch myfile -r /etc/lilo.conf myfile 獲取 lilo.conf 的屬性


dd

此命令以可更改的 I/O 塊大小複製檔案。它也可以用於執行轉換(類似於 tr)。主要選項是 if=(輸入檔案)of= (輸出檔案)conv=(轉換)

轉換開關可以是:lcase ucase ascii

示例

# dd if=/dev/sda1 of=/dev/sda2

請注意,與 cp 不同,dd 工具會複製裝置的部分內容並保留底層檔案系統。另一方面,cp 僅處理資料,並將資料從一個檔案系統傳輸到另一個檔案系統

檔案歸檔和壓縮

[編輯 | 編輯原始碼]

Linux 有幾個用於壓縮和歸檔檔案的實用程式。其中一些工具起源於磁帶歸檔和備份解決方案,引數和名稱反映了這一點。


tar

tar(磁帶存檔)命令用於歸檔目錄並可選地壓縮存檔。最初,tar 命令用於歸檔到磁帶,但現在也可以歸檔到磁碟,這是它最常見的用途。存檔如下建立

# tar – cvjf backup.tar.bz /home/user1

這將建立一個 user1 主目錄的 bzip 壓縮存檔。提供給 tar 的選項是

  • c – 建立存檔,
  • v – 在建立存檔期間顯示詳細輸出,
  • j – 使用 bzip 壓縮壓縮存檔,或者可以使用 z,它將使用 gzip 壓縮
  • f – 要建立的檔案的名稱,在本例中為 backup.tar,bz

要解壓縮 backup.tar.bz 存檔,您將使用以下命令

# tar -xvjf backup.tar.bz

這將解壓縮存檔到當前目錄。命令列引數與上面的示例基本相同,除了 -x(提取)引數,它替換了 -c(建立)。要列出存檔的內容而不提取它,您將使用 -t 引數

# tar -tf backup.tar.bz


cpio

cpio 是一個較舊的存檔實用程式,它本身不支援壓縮。cpio 代表 copy in/out。雖然 cpio 在很大程度上已被 tar 取代,但它仍在 Linux 中使用。特別是 initrd 映像檔案是一個 cpio 存檔。cpio 期待標準輸入中列出的要存檔的檔案,因此通常與 findls 命令結合使用。

$ ls | cpio -ov > backup.cpio

$ find / | cpio -ov > backup.cpio

以上兩個命令使用 cpio 建立了一個存檔。v 引數告訴 cpio 在建立存檔期間提供詳細輸出。要提取存檔,您將使用類似以下的命令

$ cpio -iv < backup.cpio

這將提取 cpio 存檔到當前目錄。關於 cpio,需要注意的一點是它的引數。對於存檔,我們通常談論存檔和提取,這表明 -c 用於建立,而 -x 或 -e 用於提取。記住 -o 用於建立,而 -i 用於提取的最簡單方法是記住 cpio 代表 copy in/ copy out。您將透過從檔案系統中複製出來來建立存檔,並透過從存檔中複製進來來提取存檔。


gzip/gunzip

gzip 用於使用 Lempel-Ziv 編碼壓縮檔案。與大多數 Linux 命令一樣,它可以接受大量引數,但最常用的使用方法如下

$ gzip largefile.txt

預設情況下,gzip 會建立一個與輸入檔案同名但帶有 .gz 副檔名的輸出檔案。上面的命令將建立一個名為 largefile.txt.gz 的壓縮檔案。要解壓縮檔案,您將執行以下命令

$ gunzip largefile.txt.gz

$ gzip -d largefile.txt.gz

bzip/bzip2

bzip2 使用 Burrows-Wheeler 塊排序文字壓縮演算法和哈夫曼編碼來壓縮檔案,這被認為比 Lempel-Ziv 檔案壓縮演算法更有效。它最常用的壓縮檔案格式會以 1 到 9 之間的數字作為引數。這個數字用於告訴 bzip2 使用效率最低但速度最快的壓縮塊大小(1)或使用效率最高但速度最慢的壓縮塊大小(9)。如果沒有指定數字,則預設使用 9。

$ bzip2 -9 largefile.txt

這將建立一個與原始檔名相同但副檔名為 .bz 的最小檔案。在本例中,檔案將是 largefile.txt.bz。要解壓縮檔案,可以使用

$ bzip2 -d largefile.txt.bz2 **或**

$ bunzip2 largefile.txt.bz2



使用過的檔案、術語和工具:* cp

  • find
  • mkdir
  • mv
  • ls
  • rm
  • rmdir
  • touch
  • tar
  • cpio
  • dd
  • file
  • gzip
  • gunzip
  • bzip2
  • 檔案萬用字元


上一章 | 下一章

華夏公益教科書