1. 程式人生 > >【Linux】檔案和目錄操作——cd、mkdir、rm、cp...

【Linux】檔案和目錄操作——cd、mkdir、rm、cp...

目錄的表示:

. 代表此層目錄
.. 代表上一層目錄
- 代表前一個工作目錄
~ 代表『目前使用者身份』所在的家目錄
~account 代表 account 這個使用者的家目錄

絕對路徑:從根目錄/開始寫起的路徑;
相對路徑:使用../../來表示相對當前路徑的路徑。

目錄切換——cd命令

格式:

cd 目標路徑

其中目標路徑可以是絕對路徑或相對路徑。

顯示當前目錄——pwd

格式:

pwd 引數

引數:

-P:顯示真實路徑而非連結。

建立目錄——mkdir

[[email protected]

~]# mkdir [-mp] 目錄名稱

引數:

-m : 許可權預設,如makir -m 777 /home/lx
-p :遞迴建立,如要建立/dev/test/test1目錄,不需要test目錄存在,無此引數時需要test存在才能建立

刪除空目錄——rmdir

[[email protected] ~]# rmdir [引數] 目錄名稱

刪除非空目錄則出錯。
引數:
-p :連同上層『空的』目錄也一起刪除

刪除檔案或目錄——rm

格式:

rm 【引數】檔案

引數:

-f 忽略警告資訊
-i 刪除前先詢問
-r 刪除資料夾

例項:強制刪除test.log檔案

rm -f test.log

路徑相關變數——PATH

PATH路徑是一個系統變數,用來表示路徑,當我們在執行一個指令的時候, 系統會依照 PATH 的設定去每個 PATH 定義的路徑下搜尋執行檔案,先搜尋到的指令先被執行之!PATH變數值由路徑組成,而每個目錄是有順序的,每個目錄中間以冒號『:』來分隔。

新增PATH:

[root@linux ~]# PATH="$PATH":/root

目錄屬性檢視——ls

[root@linux ~]# ls [-aAdfFhilRS] 目錄名稱
[root@linux ~]# ls
[--color={none,auto,always}] 目錄名稱 [root@linux ~]# ls [--full-time] 目錄名稱

引數:

-a :全部的檔案,連同隱藏檔案( 開頭為 . 的檔案) 一起列出來~
-A :全部的檔案,連同隱藏檔案,但不包括 . 與 .. 這兩個目錄,一起列出來~
-d :僅列出目錄本身,而不是列出目錄內的檔案資料
-f :直接列出結果,而不進行排序 (ls 預設會以檔名排序!)
-F :根據檔案、目錄等資訊,給予附加資料結構,例如:
*:代表可執行檔; /:代表目錄; =:代表 socket 檔案; |:代表 FIFO檔案;
-h :將檔案容量以人類較易讀的方式(例如 GB, KB 等等)列出來;
-i :列出 inode 位置,而非列出檔案屬性;
-l :長資料序列出,包含檔案的屬性等等資料;
-n :列出 UID 與 GID 而非使用者與群組的名稱 (UID 與 GID 會在賬號管理提到!)
-r :將排序結果反向輸出,例如:原本檔名由小到大,反向則為由大到小;
-R :連同子目錄內容一起列出來;
-S :以檔案容量大小排序!
-t :依時間排序
–color=never :不要依據檔案特性給予顏色顯示;
–color=always :顯示顏色
–color=auto :讓系統自行依據設定來判斷是否給予顏色
–full-time :以完整時間模式 (包含年、月、日、時、分) 輸出
–time={atime,ctime} :輸出 access 時間或 改變許可權屬性時間 (ctime)
而非內容變更時間 (modification time)

複製檔案或目錄——cp

[root@linux ~]# cp [-adfilprsu] 原始檔 目標檔案
[root@linux ~]# cp [options] source1 source2 source3 .... directory

引數:

-a :相當於 -pdr 的意思;
-d :若來原始檔為連結檔案的屬性(link file),則複製連結檔案屬性而非檔案本身;
-f :為強制 (force) 的意思,若有重複或其它疑問時,不會詢問使用者,而強制複製;
-i :若目的檔案(destination)已經存在時,在覆蓋時會先詢問!
-l :進行硬式連結 (hard link) 的連結檔案建立,而非複製檔案本身;
-p :連同檔案的屬性一起復制過去,而非使用預設屬性;
-r :遞迴持續複製,用於目錄的複製行為;
-s :複製成為符號連結檔案 (symbolic link),亦即『快捷方式』檔案;
-u :若 destination 比 source 舊才更新 destination !

移動檔案或目錄,重新命名——mv

[root@linux ~]# mv [-fiu] source destination
[root@linux ~]# mv [options] source1 source2 source3 .... directory

引數:

-f :force 強制的意思,強制直接移動而不詢問;
-i :若目標檔案 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標檔案已經存在,且 source 比較新,才會更新 (update)

從路徑獲取檔名和目錄名——basename、dirname

[root@linux ~]# basename /etc/sysconfig/network
network <== 很簡單!就取得最後的檔案或目錄名~
[root@linux ~]# dirname /etc/sysconfig/network
/etc/sysconfig <== 取得最後那個檔案或目錄的父路徑!