Lunix文件與目錄管理

目錄

 

Lunix文件與目錄管理

1 目錄與路徑

1.1 目錄的相關操作

1.2 文件路徑變量$PATH

2.0 文件與目錄管理

2.1 文件與目錄的檢視 ls

2.2 複製、刪除與移動

2.3 移除文件或目錄

2.4 移動文件和目錄、或更名

2.5  取得文件的目錄名和文件名稱 

3.0  文件內容查詢

3.1 直接檢視文件內容

3.2 可翻頁檢視

3.3 數據攝取

3.4 修改文件時間或新建文檔

3.5 查看文件格式

4 指令與文件的搜尋

4.1 腳本問價名的搜尋

4.2 文件檔名的搜尋


Lunix文件與目錄管理

1 目錄與路徑

1.1 目錄的相關操作

特殊目錄:

常見的處理目錄的指令

cd (change directory)變換目錄

mkdir 建立一個新的目錄

mkdir [-mp]  目錄名稱

選項與參數:

-m 配置目錄權限  mkdir -m 744  test

-p 幫助你直接將所需要的目錄(包含上層目錄)遞歸建立起來

pwd 顯示當前目錄

pwd [-P] 

選項與參數:

-P 顯示出確實的路徑,而非使用鏈接 (link) 路徑

rmdir 刪除一個空的目錄

rmdir [-p]  目錄名稱 

選項與參數:

-p  連同上層空的目錄也一併刪除

 

1.2 文件路徑變量$PATH

       系統會依照 PATH 的設定去每個 PATH 定義的目錄下搜尋文件名爲 ls 的可執行文件,如果在 PATH 定義的目錄中含有多個文件名爲 ls 的可執行文件,那麼先搜尋到的同名指令先被執行。

設置PATH: path = "${path}:/root"

2.0 文件與目錄管理

2.1 文件與目錄的檢視 ls

ls [options]  文件名或者目錄名稱

選項與參數:

-a :全部的文件,連同隱藏檔( 開頭爲 . 的文件) 一起列出來(常用)

-A :全部的文件,連同隱藏檔,但不包括 . 與 .. 這兩個目錄

-d :僅列出目錄本身,而不是列出目錄內的文件數據(常用)

-f :直接列出結果,而不進行排序 (ls 預設會以檔名排序!)

-F :根據文件、目錄等信息,給予附加數據結構,例如: *:代表可執行文件; /:代表目錄; =:代表 socket 文件; |:代表 FIFO 文件;

-h :將文件容量以人類較易讀的方式(例如 GB, KB 等等)列出來;

-i :列出 inode 號碼;

-l :長數據串行出,包含文件的屬性與權限等等數據;(常用)

-n :列出 UID 與 GID 而非使用者與羣組的名稱 

-r :將排序結果反向輸出,例如:原本檔名由小到大,反向則爲由大到小-

R :連同子目錄內容一起列出來,等於該目錄下的所有文件都會顯示出來

-S :以文件容量大小排序,而不是用檔名排序;

-t :依時間排序,而不是用檔名。

--color=never :不要依據文件特性給予顏色顯示;-

-color=always :顯示顏色

--color=auto :讓系統自行依據設定來判斷是否給予顏色

--full-time :以完整時間模式 (包含年、月、日、時、分) 輸出

--time={atime,ctime} :出 access 時間或改變權限屬性時間 (ctime),而非內容變更時間 (modification time)

2.2 複製、刪除與移動

拷貝文件或目錄

cp [options]   sourceFile  targetFile

cp [options]   sourceFile sourceFile sourceFile sourceFile ...  targetFile

選項與參數:

-a :相當於 -d、-p、-r 選項的集合;(常用)

-d :若來源文件爲鏈接文件的屬性(link file),則複製鏈接文件屬性而非文件本身;

-f :爲強制(force)的意思,若目標文件已經存在且無法開啓,則移除後再嘗試一次;

-i :若目標文件(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)

-l :進行硬式連結(hard link)的連結檔建立,而非複製文件本身;

-p :連同文件的屬性(權限、用戶、時間)一起復制過去,而非使用默認屬性(備份常用);

-r :遞歸持續複製,用於目錄的複製行爲;(常用)

-s :複製成爲符號鏈接文件 (symbolic link),亦即『快捷方式』文件;

-u :destination 比 source 舊才更新 destination,或 destination 不存在的情況下才複製.

我們如果去複製別人的數據 時, 總是希望複製到的數據最後是我們自己的,所以,在預設的條件中, cp 的來源檔與目的檔的權限是不同的,目的檔的擁有者通常會是指令操作者本身。由於具有這個特性,因此當我們在進行備份的時候,某些需要特別注意的特殊權限文件, 例如密碼文件 (/etc/shadow) 以及一些配置文件,就不能直接以 cp 來複制,而必須要加上 -a 或者是 -p 等等.

可以完整複製文件權限的選項纔行!另外,如果你想要複製文件給其他的使用者, 也必須要注意到文件的權限(包含讀、寫、執行以及文件擁有者等等), 否則,其他人還是無法針對你給予的文件進行修訂的動作.

2.3 移除文件或目錄

rm [options]   文件或目錄

選項與參數:

-f :就是 force 的意思,忽略不存在的文件,不會出現警告訊息;
-i :互動模式,在刪除前會詢問使用者是否動作
-r :遞歸刪除!

2.4 移動文件和目錄、或更名

mv [options]   sourceFile  targetFile

mv [options]   sourceFile sourceFile sourceFile sourceFile ...  targetFile

選項與參數:

-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;

-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

-u :若目標文件已經存在,且 source 比較新,纔會更新 。

2.5  取得文件的目錄名和文件名稱 

basename 文件或目錄
就取得最後的檔名
dirname 文件或目錄
取得目錄名

3.0  文件內容查詢

指令列表

cat 由第一行開始顯示文件內容

tac 從最後一行開始顯示,可以看出 tac 是 cat 的倒着寫!

nl 顯示的時候,順道輸出行號!

more 一頁一頁的顯示文件內容

less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!

head 只看頭幾行

3.1 直接檢視文件內容

cat [options] 文件

選項與參數:

-A :相當於 -vET 的整合選項,可列出一些特殊字符而不是空白而已;

-b :列出行號,僅針對非空白行做行號顯示,空白行不標行號!

-E :將結尾的斷行字符 $ 顯示出來;

-n :打印出行號,連同空白行也會有行號,與 -b 的選項不同;

-T :將 [tab] 按鍵以 ^I 顯示出來;

-v :列出一些看不出來的特殊字符

3.2 可翻頁檢視

more (一頁一頁翻動)

不可向上翻頁

按鍵

空格鍵(space):代表向下翻頁

Enter:代表向下一行

/字符串:代表向下搜索某字符串

:f :立刻顯示出文件名及目前所在的行次

q:代表立刻離開

b:代表往回翻頁,不過只對文件有用,對管道無效

less (一頁一頁翻動)

可上下翻動,可向上搜尋

空格鍵 :(向下翻動一頁)

pagedown: 向下翻動一頁

pageup : 向上翻動一頁

/ 字符串: 向下搜尋字符串

?字符串:向上搜尋字符串

n:重複前一個搜尋

N:反向重複前一個搜尋

g:前進到文件的第一行去

G:前進到數據的最後一行

q:退出

3.3 數據攝取

head (取出前面幾行)

head [-n number] 文件

選項與參數:

-n : 後面接數字,代表取多少行,不加時,默認顯示十行

tail (取出後面幾行)

tail [-n number] 文件

選項與參數:

-n: 後面接數字,代表取多少行,不加時,默認顯示十行

-f:表示持續偵測文件的內容,按ctrl c 強制中斷程序的執行

od  (以何種類型輸出文件)

od [-t TYPE] 文件

選項與參數:

-t :後面可以接各種『類型 (TYPE)』的輸出,例如:

a :利用默認的字符來輸出;

c :使用 ASCII 字符來輸出

d[size] :利用十進制(decimal)來輸出數據,每個整數佔用 size bytes ;

f[size] :利用浮點數(floating)來輸出數據,每個數佔用 size bytes ;

o[size] :利用八進制(octal)來輸出數據,每個整數佔用 size bytes ;

x[size] :利用十六進制(hexadecimal)來輸出數據,每個整數佔用 size bytes 

3.4 修改文件時間或新建文檔

touch [options] 文件

選項與參數:

-a :僅修訂 access time;

-c :僅修改文件的時間,若該文件不存在則不建立新文件;

-d :後面可以接欲修訂的日期而不用目前的日期,也可以使用 --date="日期或時間"

-m :僅修改 mtime ;

-t :後面可以接欲修訂的時間而不用目前的時間,格式爲[YYYYMMDDhhmm]

3.5 查看文件格式

file 文件

4 指令與文件的搜尋

4.1 腳本文件名的搜尋

which (尋找 [執行檔])

which -a command

選項與參數:

-a :將所有由 PATH 目錄中可以找到的指令均列出,而不止第一個被找到的指令名稱

4.2 文件檔名的搜尋

whereis 該指令只能用於查找二進制文件、源代碼文件和man手冊頁,一般文件的定位需使用locate命令

whereis [options] 文件

選項與參數:

-l :可以列出 whereis 會去查詢的幾個主要目錄而已

-b :只找 binary 格式的文件

-m :只找在說明文件 manual 路徑下的文件

-s :只找 source 來源文件

-u :搜尋不在上述三個項目當中的其他特殊文件

locate / updatedb

locate 尋找數據的時候特別的快, 這是因爲 locate 尋找的數據是由『已建立的數據庫 /var/lib/mlocate/』 裏面的數據所搜尋到的,也因此存在限制(數據庫的建立默認是在每天執行一次),可通過updatedb更新數據庫來找到你當天建立的文件

locate [options] 文件

選項與參數:

-i :忽略大小寫的差異;

-c :不輸出檔名,僅計算找到的文件數量

-l :僅輸出幾行的意思,例如輸出五行則是 -l 5

-S :輸出 locate 所使用的數據庫文件的相關信息,包括該數據庫紀錄的文件/目錄數量等

-r :後面可接正規表示法的顯示方式

find PATH [options] action

選項與參數:

1. 與時間有關的選項:共有 -atime, -ctime 與 -mtime ,以 -mtime 說明

-mtime n :n 爲數字,意義爲在 n 天之前的『一天之內』被更動過內容的文件;

-mtime +n :列出在 n 天之前(不含 n 天本身)被更動過內容的文件檔名;

-mtime -n :列出在 n 天之內(含 n 天本身)被更動過內容的文件檔名。

-newer file :file 爲一個存在的文件,列出比 file 還要新的文件檔名

 2. 與使用者或組名有關的參數:

-uid n :n 爲數字,這個數字是用戶的賬號 ID,亦即 UID ,這個 UID 是記錄在/etc/passwd 裏面與賬號名稱對應的數字。

-gid n :n 爲數字,這個數字是組名的 ID,亦即 GID,這個 GID 記錄在/etc/group

-user name :name 爲使用者賬號名稱喔!例如 dmtsai

-group name:name 爲組名喔,例如 users ;

-nouser :尋找文件的擁有者不存在 /etc/passwd 的人!

-nogroup :尋找文件的擁有羣組不存在於 /etc/group 的文件!

當你自行安裝軟件時,很可能該軟件的屬性當中並沒有文件擁有者,

這是可能的!在這個時候,就可以使用 -nouser 與 -nogroup 搜尋

3. 與文件權限及名稱有關的參數:

-name filename:搜尋文件名爲 filename 的文件;

-size [+-]SIZE:搜尋比 SIZE 還要大(+)或小(-)的文件。這個 SIZE 的規格有:

         c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB還要大的文件,就是『 -size +50k 』

-type TYPE :搜尋文件的類型爲 TYPE 的,類型主要有:

一般正規文件 (f), 裝置文件 (b, c),目錄 (d), 連結檔 (l), socket (s), 及 FIFO (p) 等屬性。

-perm mode :搜尋文件權限『剛好等於』 mode 的文件,這個 mode 爲類似 chmod的屬性值,舉例來說, -rwsr-xr-x 的屬性爲 4755 !

-perm -mode :搜尋文件權限『必須要全部囊括 mode 的權限』的文件,舉例來說我們要搜尋 -rwxr--r-- ,亦即 0744 的文件,使用 -perm -0744,當一個文件的權限爲 -rwsr-xr-x ,亦即 4755 時,也會被列出來,因爲 -rwsr-xr-x 的屬性已經囊括了 -rwxr--r-- 的屬性了。

-perm /mode :搜尋文件權限『包含任一 mode 的權限』的文件,舉例來說,我們搜尋-rwxr-xr-x ,亦即 -perm /755 時,但一個文件屬性爲 -rw-------也會被列出來,因爲他有 -rw.... 的屬性存在!

4. 額外可進行的動作:

-exec command :command 爲其他指令,-exec 後面可再接額外的指令來處理搜尋到的結果。

-print :將結果打印到屏幕上,這個動作是預設動作!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章