檔案與目錄操作

2021-04-13 05:37:54 字數 3306 閱讀 9433

檔案與目錄操作

使用者的資料和程式大多以檔案的形式儲存。使用者使用linux系統的過程中,需要經常對檔案和目錄進行操作。本章講述了檔案與目錄的基本概念,有關檔案和目錄操作的命令以及如何在linux環境下執行dos命令。

檔案與目錄的基本概念

檔案與檔名

在多數作業系統中都有檔案的概念。檔案是linux用來儲存資訊的基本結構,它是被命名(稱為檔名)的儲存在某種介質(如磁碟、光碟和磁帶等)上的一組資訊的集合。linux檔案均為無結構的字元流形式。檔名是檔案的標識,它由字母、數字、下劃線和圓點組成的字串來構成。使用者應該選擇有意義的檔名。linux要求檔名的長度限制在255個字元以內。

為了便於管理和識別,使用者可以把副檔名作為檔名的一部分。圓點用於區分檔名和副檔名。副檔名對於將檔案分類是十分有用的。使用者可能對某些大眾已接納的標準副檔名比較熟悉,例如,c語言編寫的源**檔案總是具有c的副檔名。使用者可以根據自己的需要,隨意加入自己的副檔名。

以下例子都是有效的linux檔名。

preface

chapter1.txt

xu.c

xu.bak

檔案的型別

linux系統中有三種基本的檔案型別:普通檔案、目錄檔案和裝置檔案。

1. 普通檔案 普通檔案是使用者最經常面對的檔案。它又分為文字檔案和二進位制檔案。

1)文字檔案:這類檔案以文字的ascii碼形式儲存在計算機中。它是以"行"為基本結構的一種資訊組織和儲存方式。

2)二進位制檔案:這類檔案以文字的二進位制形式儲存在計算機中,使用者一般不能直接讀懂它們,只有通過相應的軟體才能將其顯示出來。二進位制檔案一般是可執行程式、圖形、影象、聲音等等。

2. 目錄檔案 設計目錄檔案的主要目的是用於管理和組織系統中的大量檔案。它儲存一組相關檔案的位置、大小等與檔案有關的資訊。目錄檔案往往簡稱為目錄。

3. 裝置檔案 裝置檔案是linux系統很重要的乙個特色。linux系統把每乙個i/o裝置都看成乙個檔案,與普通檔案一樣處理,這樣可以使檔案與裝置的操作盡可能統一。從使用者的角度來看,對i/o裝置的使用和一般檔案的使用一樣,不必了解i/o裝置的細節。裝置檔案可以細分為塊裝置檔案和字元裝置檔案。前者的訪問是以乙個個字元塊為單位的,後者則是以單個字元為單位的。

目錄樹型目錄結構

在計算機系統中存有大量的檔案,如何有效的組織與管理它們,並為使用者提供乙個使用方便的介面是檔案系統的一大任務。linux系統以檔案目錄的方式來組織和管理系統中的所有檔案。所謂檔案目錄就是將所有檔案的說明資訊採用樹型結構組織起來--即我們常說的目錄。也就是說,整個檔案系統有乙個"根"(root),然後在根上分"杈"(directory),任何乙個分杈上都可以再分杈,杈上也可以長出"葉子"。"根"和"杈"在linux中被稱為是"目錄"或"資料夾"。而"葉子"則是乙個個的檔案。實踐證明,此種結構的檔案系統效率比較高。

如前所述,目錄也是一種型別的檔案。linux系統通過目錄將系統中所有的檔案分級、分層組織在一起,形成了linux檔案系統的樹型層次結構。以根目錄為起點,所有其他的目錄都由根目錄派生而來。乙個典型的linux系統的樹型目錄結構如圖3.1所示。使用者可以瀏覽整個系統,可以進入任何乙個已授權進入的目錄,訪問那裡的檔案。

上圖中,我們只給出了目錄結點名稱,而沒有給出各個目錄"之下"的每乙個檔案。實際上,各個目錄結點"之下"都會有一些檔案和子目錄。並且,系統在建立每乙個目錄時,都會自動為它設定兩個目錄檔案,乙個是".",代表該目錄自己,另乙個是"..",代表該目錄的父目錄,對於根目錄,"."和".."都代表其自己。

linux目錄提供了管理檔案的乙個方便途徑。每個目錄裡面都包含檔案。使用者可以為自己的檔案建立自己的目錄,也可以把乙個目錄下的檔案移動或複製到另一目錄下,而且能移動整個目錄,並且和系統中的其他使用者共享目錄和檔案。也就是說。我們能夠方便地從乙個目錄切換到另乙個目錄,而且可以設定目錄和檔案的管理許可權,以便允許或拒絕其他人對其進行訪問。同時檔案目錄結構的相互關聯性使分享資料變得十分容易,幾個使用者可以訪問同乙個檔案。因此允許使用者設定檔案的共享程度。

需要說明的是,根目錄是linux系統中的特殊目錄。linux是乙個多使用者系統,作業系統本身的駐留程式存放在以根目錄開始的專用目錄中,有時被指定為系統目錄。在圖3.1中那些根目錄下的目錄就是系統目錄。

工作目錄、使用者主目錄與路徑

如前所述,目錄是linux系統組織檔案的一種特殊檔案。為使使用者更好地使用目錄,我們介紹有關目錄的一些基本概念。

i. 工作目錄與使用者主目錄

從邏輯上講,使用者在登入到linux系統中之後,每時每刻都"處在"某個目錄之中,此目錄被稱作工作目錄或當前目錄(working directory)。工作目錄是可以隨時改變的。使用者初始登入到系統中時,其主目錄(home directory)就成為其工作目錄。工作目錄用"."表示,其父目錄用".."表示。

使用者主目錄是系統管理員增加使用者時建立起來的(以後也可以改變),每個使用者都有自己的主目錄,不同使用者的主目錄一般互不相同。

使用者剛登入到系統中時,其工作目錄便是該使用者主目錄,通常與使用者的登入名相同。

使用者可以通過乙個"~"字元來引用自己的主目錄。

例如命令

/home/wang$ cat ~/class/software_1

和下面的命令

/home/wang$ cat /home/wang/class/software_1 意義相同。shell將用使用者主目錄名來替換"~"字元。 目錄層次建立好之後,使用者就可以把有關的檔案放到相應的目錄中,從而實現對檔案的組織。

對檔案進行訪問時,需要用到 "路徑"(path)的概念。

ii. 路徑

顧名思義,路徑是指從樹型目錄中的某個目錄層次到某個檔案的一條道路。此路徑的主要構成是目錄名稱,中間用"/"分開。任一檔案在檔案系統中的位置都是由相應的路徑決定的。

使用者在對檔案進行訪問時,要給出檔案所在的路徑。 路徑又分相對路徑和絕對路徑。 絕對路徑是指從"根"開始的路徑,也稱為完全路徑;相對路徑是從使用者工作目錄開始的路徑。

應該注意到,在樹型目錄結構中到某一確定檔案的絕對路徑和相對路徑均只有一條。絕對路徑是確定不變的,而相對路徑則隨著使用者工作目錄的變化而不斷變化。這一點對於我們以後使用某些命令如cp和tar等大有好處。

使用者要訪問乙個檔案時,可以通過路徑名來引用。並且可以根據要訪問的檔案與使用者工作目錄的相對位置來引用它,而不需要列出這個檔案的完整的路徑名。例如,使用者wang有乙個名為class的目錄,該目錄中有兩個檔案:software_1和hardware_1。若使用者wang想顯示出其class目錄中的名為software_1的檔案,可以使用下列命令:

/home/wang$ cat /home/wang/class/software_1

使用者也可以根據檔案software_1與當前工作目錄的相對位置來引用該檔案。這時命令為:

/home/wang$ cat class/software_1

檔案與目錄操作

一 將創庫textbox中的文字保留到指定檔案中的方法 對檔案的操作是基於資料流進行的,所以需要引入此命名空間 using system.io 將文字 寫入文字檔案 private void button1 click object sender,eventargs e 複製檔案 private v...

python 檔案與目錄操作

1 os.path 1.1 os.path.isabs path 是否是絕對路徑 1.2 os.path.isfile path 1.3 os.path.isdir path 1.4 os.path.islink path 是否是鏈結 但如果系統不支援鏈結,返回false 1.5 os.path.i...

python 目錄與檔案操作

os和os.path模組 os.listdir dirname 列出dirname下的目錄和檔案 os.getcwd 獲得當前工作目錄 os.curdir 返回但前目錄 os.chdir dirname 改變工作目錄到dirname os.path.isdir name 判斷name是不是乙個目錄,...