Linux檔案操作

2021-07-06 04:51:26 字數 4403 閱讀 3857

特殊目錄

.   代表此層目錄

..   代表上一層目錄

–    前乙個工作目錄

~    代表「當前使用者」所在的主目錄

~account     代表「account」這個使用者的主目錄

下面我們來談談幾個常見的處理目錄的命令:

cd    切換目錄

pwd  [-p]   顯示當前目錄

引數:-p 顯示當前的路徑,而非使用連線(link)的路徑(顯示連線源的路徑)

mkdir  [-mp]   新建乙個新的目錄

引數:-m 設定許可權

-p 遞迴建立路徑,沒有的路徑也會一併建立

rmdir [-p]     刪除乙個目錄

檢視環境變數  echo $path

path(一定是大寫)這個變數內容是由一堆目錄所組成,每個目錄中間用冒號(:)來隔開,每個目錄是有「順序」之分的。

疑問:如果我有兩個ls命令在不同的目錄中,例如/usr/local/bin/ls 和 /bin/ls ,那麼當我執行ls的時候,是哪個ls被執行?

答:echo $path,看哪個目錄在前面,則哪個目錄下的命令先被執行。因為linux是按環境變數的配置順序,查詢命令的。

為了安全起見,建議 不要將「.」當前目錄加入到path

ls 引數很多,只需記住幾個常用

引數:-a    全部的檔案(包括隱藏檔案)

-a     全部的檔案(不包括隱藏檔案)

-d     只列出目錄

-f     直接列出結果,而不進行排序(缺省會以檔名排序)

-f    根據檔案、目錄等資訊 給予附加資料結構,如:*可執行檔案    / 目錄    = socket檔案    | fifo檔案

-h    將檔案容量以較易讀的方式(如:gb、kb等)列出來

-i     列出inode號碼

-l    列出長資料串,包含檔案的屬性和許可權等資料(常用)

-n     列出uid和gid,而非使用者與使用者組的名稱

-r    將排序結果反向輸出

-r    連同子目錄內容一起列出

-s    以檔案容量大小排序(大->小排序)

-t    以時間mtime排序(新->舊排序)

–full-time    顯示完整時間

–time=(atime, ctime)     輸出atime或ctime  (atime被讀取的時間,ctime檔案許可權和屬性被修改的時間)

cp 原始檔  目標檔案引數

-a將所有的屬性全部複製,相當於 -pdr 的意思

-d     若原始檔為link file,則只複製link file的屬性而非檔案本身

-f 強制複製

-i 覆蓋時,會提示

-l    硬連線的檔案檔案建立,而非複製檔案本身

-p連同檔案屬性一起複製 -r

遞迴複製

-s    複製成為軟鏈結,建立」軟鏈結」

-u若目標檔案 比 原始檔 舊,才會複製

最後需要注意的,如果原始檔有兩個以上,則最後乙個目的檔案一定是「目錄」  

rm 檔案引數

-f    強制

-i    刪除時提示

-r    遞迴

mv引數

-f    強制

-i    相同檔案已經存在時,提示

-u    若目標檔案已經,且目標檔案較新,才會移動檔案

其他:basename 路徑        取得路徑的檔名

dirname 路徑            取得目錄名

檢視檔案內容

cat     由第一行開始顯示檔案內容

tac    從最後一行開始顯示

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

more    一頁頁的顯示,只可往下翻頁

less    一頁頁的顯示,可以上下翻頁

head    只看頭幾行

tail    只看後幾行

od    以二進位制的方式讀取檔案

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

linux下面都會記錄許多的時間引數,其中有3個主要的變動時間

mtime   

「內容資料」更新的時間

ctime

「狀態」更新的時間,許可權和屬性被更改了,都會更新這個時間

atime

當「該檔案的內容被讀取」時,就會更新這個時間

引數:-a    僅修改訪問時間

-c    僅修改檔案的時間(包括atime、ctime、mtime),若該檔案不存在則不建立新檔案

-m    僅修改mtime

-t    後面可以接欲修改的時間而不是當前的時間,格式為 [yyyymmddhhmm]

注:touch -m 檔案  會改變mtime、ctime

touch -c 檔案   會改變mtime、ctime、atime

umask檔案預設許可權

umask    數字形態的許可權分數,分數指的是「該預設值需要減掉的許可權」

umask -s     符號型別的方式顯示許可權

chattr [+-=] [asacdistu] 檔案或目錄

引數就解析2個重要的,a和i a

當設定a之後,這個檔案將只能增加資料,而不能刪除也不能修改資料,只有root才能設定這個屬性。案例:log檔案,只能追加內容,不能刪除內容,就可以使用+a屬性 i

它可以讓乙個檔案「不能刪除、不能改名、不能設定連線、不能修改資料」,即無法改動這個檔案,對於系統安全性有相當大的作用,只有root才能設定這個屬性

lsattr 顯示檔案的隱藏屬性引數

-a     將隱藏檔案也顯示出來

-d    如果接的是目錄,僅列出目錄本身的屬性

-r    連同子目錄的資料也一並列出來

對於檔案的特殊許可權suid、sgid、sbit,還不理解,暫時未做分析

file 檢視檔案型別

如果你想知道某個檔案的基本資料,例如是屬性asccii 或是 data檔案,或者是binary,且其中有沒有使用到動態函式庫等等的資訊,就可以利用file這個命令來檢視。

which [-a] 命令名

查詢指令碼檔名  -a 將所有在path環境變數中可以找到的命令都列出來

疑問:為什麼cd這個命令無法被找到呢?

答:因為cd是bash內建的命令

whereis [-bmsu] 檔案引數

-b    只找二進位制格式的檔案

-m   只找在說明檔案manual 路徑下的檔案

-s    只找source 原始檔

-u    查詢不在上述三個選項當中的其他特殊檔案

locate [-ir] keyword

查詢包含keyword 的檔案 引數

-i    忽略大小寫的差異

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

通常find不是很常用,因為速度慢。通常我們都是先使用whereis 或 locate 來檢查,如果真的找不到了,才用find來查詢。

因為whereis 和 locate 是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。

這個資料庫儲存系統內的所有檔案資訊,

預設是每天建立一次,如需更新這個資料庫,可以使用命令 updatedb

find [path] [option] 很強大的命令,這裡只簡單的介紹常用的引數

-user name       查詢name使用者的檔案

-group name    查詢屬於name組的檔案

-name filename

1.讓使用者進入某個目錄,基本許可權x

2.使用者在某個目錄可以讀取檔案,基本許可權xr

3.使用者可以修改乙個檔案,基本許可權:檔案rw,檔案所在目錄x

4.使用者可以建立乙個檔案,基本許可權:目錄wx

5.使用者進入某個目錄並執該目錄下的某個命令,基本許可權:檔案x,目錄x

linux 檔案操作

1 cat 開啟檔案 cat name.txt 開啟檔案name.txt cat 1.txt 2.txt 開啟2個檔案 cat n name.txt 開啟檔案後顯示行號 2 vi 輸出,刪除,查詢,替換,塊操作 等文字操作 vi 的三種基本工作模式 命令列模式,文字輸入模式,末行模式 命令列模式 不...

Linux 檔案操作

1,查詢檔案 find name 名稱 ls find atime 10 記著有乙個點號 兩邊都有空格,代表當前目錄,如果希望顯示系統的所有大於10天的檔案 可以將 換成 代表根目錄 find mtime n print n天前那天改過的檔案 find mtime n print n天以前改過的檔案...

linux檔案操作

unix檔案操作 讀寫操作 標c檔案讀寫 file 代表乙個開啟的檔案 unix linux的檔案讀寫函式 linux系統中 幾乎一切都是檔案,記憶體 目錄 硬體裝置都可以看成檔案。比如 記憶體 對應目錄 proc pid 目錄 可以用 vi 檢視,也是檔案 裝置 dev tty 鍵盤 顯示器 de...