Linux基礎學習——檔案與目錄管理

謎一樣的Coder發表於2018-11-05

 

前言

Linux檔案與目錄的管理部分還有很多細節,在鳥哥的linux私房菜中都有提及,但是,第一遍熟悉,重點在命令上面,沒有進行具體的深入,後面會不斷豐富這些部落格。

目錄的相關操作

一些命令

mkdir 建立檔案目錄

mkdir建立一個目錄,其實不止一種用法,還可以結合許可權操作使用。

mkdir -m [許可權碼] [目錄名稱]

如上圖所示:mkdir -m 777 testDir 之後,testDir的許可權被賦予了,如果沒有指定的許可權碼,資料夾的許可權如下圖所示,至於為什麼是這個,這和umask有關

mkdir -p [路徑名] 按照層級建立資料夾

rmdir 刪除空的目錄

rmdir -p [路徑名] 按照層級刪除資料夾名稱

但是這個命令只能刪除空的資料夾,不能刪除有內容的資料夾。

執行檔案路徑的變數 $PATH

其實這個變數就類似於window下的環境變數

 PATH這個變數的內容是由一堆目錄所組成的,每個目錄中用冒號來隔開。

檔案與目錄管理

這部分主要介紹檔案的拷貝,刪除,移動等等。

檔案的檢視——ls命令

這個命令算是比較熟悉了,這裡不再詳細介紹

複製、移動與刪除——cp,mv,rm

複製檔案 cp

cp [-adfilprsu] [來原始檔] [目標檔案] (destination),這個也是符合一般的命令格式,至於其中的選項這裡只介紹幾個常見的

-i 覆蓋複製,如果目標檔案存在,則在覆蓋前先詢問

-a 完全複製原來的檔案,複製過後會發現新的檔案建立時間也和原來的檔案一樣

這裡暫時沒有總結建立檔案連結的操作。

rm——移除檔案或目錄

rm [-fir] [檔案或者目錄]

-f:force強制刪除

-i:i其實是interation 即互動的意思,就是指操作前給使用者提示

-r:遞迴刪除

 注意:

刪除有‘-'檔名稱的資料夾,直接刪除會報錯,因為帶有-的資料夾會被系統誤認為命令的選項,因此刪除有這類名字的資料夾需要加上路徑名。

mv——移動命令

mv [-fiu] [原始檔] [目的檔案]

 mv指令還可以直接修改資料夾名稱

mv指令還是可以同時拷貝多個檔案到指定資料夾,但是最後一個引數一定是資料夾 

檔案內容查閱

cat——從第一行開始顯示檔案

tac——從最後一行開始顯示檔案(命令與cat相反)

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

more——一頁一頁的顯示檔案內容

               這個命令還有指定的操作

less——在more的基礎上,可以往前翻頁顯示檔案內容

這個在工作中其實用的比較多這裡不做詳細操作

head——只看頭幾行

head [-n number] 檔案 例項:head /etc/man_db.conf 預設顯示10行,如果想顯示多行需要指定 -n 和數值

head -n 20 /etc/man_db.conf

tail——檢視後幾行

tail [-n number] [檔名]

-n:後面接數值表示幾行的意思

-f:表示持續偵測檔案的輸出,常用於實時日誌的檢視。

例項:

tail /etc/man_db.conf

 tail -n 20 /etc/man_db.conf

 tail -n +100 /etc/man_db.conf 檢視man_db.conf檔案100行以後的資料

 od——檢視非純文字檔案

od [-t TYPE] 檔案

例項:od -t oCc /etc/issue

 修改檔案時間或建立新檔案

touch——建立空檔案與修改檔案時間

touch [-acdmt] 檔案

1、建立空檔案

 2、修改某個檔案的日期(mtime,atime)

touch -d 

linux中針對一個檔案其實有三種時間描述,mtime——modify time(最後修改時間),ctime——status time(最後許可權修改的時間),atime——access time(最後的訪問時間)

 

 檔案與目錄的預設許可權與隱藏許可權

umask——檔案預設許可權,指定目前使用者在建立檔案或目錄時候的許可權預設值。

就是指定在建立預設檔案的許可權,直接umask即可完成當前umask的檢視

 umask -S 也可以輸出當前的使用者建立資料夾許可權列表

 這個現實的是資料夾的預設許可權,不是檔案的,檔案在此基礎上沒有x的許可權。

可以看到之前建立的資料夾和檔案的預設許可權,都是umask指定的,如果修改umask的值,可以直接在umask後面輸入資料,例如:umask 222,這裡的計算方式,是在原有的421基礎上做減法。

 指令與檔案的搜尋

指令檔案搜尋

搜尋相應的指令檔案所在的目錄,用which,which -a [command]——列出所有指令所在的目錄

目錄檔案搜尋

一般用whereis和locate進行查詢,通常find還不是很常用

whereis [-lbmsu] 檔案或目錄名

whereis 只查詢幾個特定的目錄而已,並沒有全系統去查詢,通常指查詢/bin/sbin 目錄和/usr/share/man目錄。

locate [-ir] keyword

locate 直接在後面輸入部分的檔名就可以了,但是這個命令找尋的資料是由已建立的資料庫 /var/lib/mlocate 裡面的資料所搜尋到的,所以不用直接去硬碟中度資料。如果使用者新建的檔案沒有及時更新到 /var/lib/mlocate/中,當然檔案就是找不到的。如下例項可以說明:

updatedb,就是更新資料庫的命令,這個命令就是直接更新 /var/lib/mlocate內的資料庫

 

相關文章