Linux 檔案與目錄管理

2021-08-28 05:47:30 字數 4583 閱讀 9200

命令:$  ls [-aadffhilnrrst] 檔名或目錄名稱..

命令:$  ls [--color=] 檔名或目錄名稱..

命令:$  ls [--full-time] 檔名或目錄名稱..

選項與引數:

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

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

-d :僅列出目錄本身,而不是列出目錄內的檔案資料(常用)

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

-f :根據檔案、目錄等資訊,給予附加資料結構,例如:

*:代表可執行檔案; /:代表目錄; =:代表 socket 檔案; |:代表 fifo 檔案;

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

-i :列出 inode 號碼,inode 的意義下一章將會介紹;

-l :長資料序列出,包含檔案的屬性與許可權等等資料;(常用)

-n :列出 uid 與 gid 而非使用者與群組的名稱 (uid 與 gid 會在賬號管理提到!)

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

-r :連同子目錄內容一起列出來,等於該目錄下的所有檔案都會顯示出來;

-s :以檔案容量大小排序,而不是用檔名排序;

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

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

--color=always :顯示顏色

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

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

--time= :輸出 access 時間或改變許可權屬性時間 (ctime)

而非內容變更時間 (modification time)

ls -al | more    ##翻頁檢視隱藏文件。

命令:$  cp [-adfilprsu] **檔案(source) 目標檔案(destination)

命令:$  cp [options] source1 source2 source3 .... directory

選項與引數:

-a :相當於 -dr --preserve=all 的意思,至於 dr 請參考下列說明;(常用)

-d :若**檔案為鏈結檔案的屬性(link file),則複製鏈結檔案屬性而非檔案本身;

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

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

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

-p :連同檔案的屬性(許可權、使用者、時間)一起複製過去,而非使用預設屬性(備份常用);

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

-s :複製成為符號鏈結檔案 (symbolic link),亦即『快捷方式』檔案;

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

--preserve=all :除了 -p 的許可權相關引數外,還加入 selinux 的屬性, links, xattr 等也複製了。

最後需要注意的,如果**檔有兩個以上,則最後乙個目的檔案一定要是『目錄』才行!

注意:由於 cp 有種種的檔案屬性與許可權的特性,所以,在複製時,你必須要清楚的了解到:

· 是否需要完整的保留**檔案的資訊?

· **檔案是否為鏈結檔 (symbolic link file)?

· **檔是否為特殊的檔案,例如 fifo, socket 等?

· **檔案是否為目錄?

命令:$   rm [-fir] 檔案或目錄

選項與引數:

-f :就是 force 的意思,忽略不存在的檔案,不會出現警告訊息;

-i :互動模式,在刪除前會詢問使用者是否動作

-r :遞迴刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!

範例一:將剛剛在 cp 的範例中建立的 bashrc 刪除掉!

命令:$   cd /tmp

命令:$   rm -i bashrc

rm: remove regular file `bashrc'? y

# 如果加上 -i 的選項就會主動詢問喔,避免你刪除到錯誤的檔名!

範例二:透過萬用字元*的幫忙,將/tmp 底下開頭為 bashrc 的檔名通通刪除:

命令:$   rm -i bashrc*

# 注意那個星號,代表的是 0 到無窮多個任意字元喔!很好用的東西!

範例三:將 cp 範例中所建立的 /tmp/etc/ 這個目錄刪除掉!

命令:$   rmdir /tmp/etc

rmdir: failed to remove '/tmp/etc': directory not empty <== 刪不掉啊!因為這不是空的目錄!

命令:$   rm -r /tmp/etc

rm: descend into directory `/tmp/etc'? y

rm: remove regular file `/tmp/etc/fstab'? y

rm: remove regular empty file `/tmp/etc/crypttab'? ^c <== 按下 [crtl]+c 中斷

.....(中間省略).....

# 因為身份是 root ,預設已經加入了 -i 的選項,所以你要一直按 y 才會刪除!

# 如果不想要繼續按 y ,可以按下『 [ctrl]-c 』來結束 rm 的工作。

# 這是一種保護的動作,如果確定要刪除掉此目錄而不要詢問,可以這樣做:

命令:$   \rm -r /tmp/etc

# 在指令前加上反斜槓,可以忽略掉 alias 的指定選項喔!至於 alias 我們在 bash 再談!

# 拜託!這個範例很可怕!你不要刪錯了!刪除 /etc 系統是會掛掉的!

範例四:刪除乙個帶有 - 開頭的檔案

命令:$   touch ./-aaa- <==touch 這個指令可以建立空檔案!

命令:$   ls -l 

-rw-r--r--. 1 root root 0 jun 11 19:22 -aaa- <==檔案大小為 0,所以是空檔案

命令:$   rm -aaa rm: invalid option -- 'a' <== 因為 "-" 是選項嘛!所以系統誤判了!

try 'rm ./-aaa-' to remove the file `-aaa-'. <== 新的 bash 有給建議的

try 'rm --help' for more information.

命令:$  rm ./-aaa-     命令:$  rm -- -aaa-   ##刪除檔案-aaa-

命令:$  mv [-fiu] source destination

命令:$  mv [options] source1 source2 source3 .... directory

選項與引數:

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

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

-u :若目標檔案已經存在,且 source 比較新,才會更新 (update)

範例一:複製一檔案,建立一目錄,將檔案移動到目錄中

命令:$  cd /tmp

命令:$  cp ~/.bashrc bashrc

命令:$  mkdir mvtest

命令:$  mv bashrc mvtest

# 將某個檔案移動到某個目錄去,就是這樣做!

範例二:將剛剛的目錄名稱更名為 mvtest2

命令:$  mv mvtest mvtest2 <== 這樣就更名了!簡單

命令:$  mv [-fiu] source destination

命令:$  mv [options] source1 source2 source3 .... directory

選項與引數:

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

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

-u :若目標檔案已經存在,且 source 比較新,才會更新 (update)

範例三:再建立兩個檔案,再全部移動到 /tmp/mvtest2 當中

命令:$   cp ~/.bashrc bashrc1

命令:$   cp ~/.bashrc bashrc2

命令:$   mv bashrc1 bashrc2 mvtest2

# 注意到這邊,如果有多個**檔案或目錄,則最後乙個目標檔案一定是『目錄!』

# 意思是說,將所有的資料移動到該目錄的意思!

命令:$   basename /etc/sysconfig/network

network <== 很簡單!就取得最後的檔名~

命令:$   dirname /etc/sysconfig/network

/etc/sysconfig <== 取得的變成目錄名了!

Linux 檔案與目錄管理

特殊目錄 當前目錄 上一層目錄 上乙個工作目錄 當前使用者的家目錄 username username的家目錄 ls,重要選項 a 顯示隱藏部分,r 遞迴顯示資料夾內容 l 顯示詳細資訊 ll等價與 ls l file 顯示文件到屬性,如binary or ascii等 which command ...

Linux檔案與目錄管理

1 幾個常見的處理目錄的指令 cd 變換目錄 change directory 注意 目錄名稱與cd指令之間存在乙個空格 pwd 顯示當前目錄 print working directory pwd p 顯示完整路徑 mkdir 建立乙個新的目錄 make directory mkdir p tes...

Linux 檔案與目錄管理

1 當前目錄 上層目錄 cd cc 由aa bb 目錄切換到 aa cc 目錄下 上一工作目錄 相當於視窗中alt tab 當前使用者身份到主資料夾 2.cd 目錄切換 change directory 3.pwd顯示目前所在目錄 print working directory 4.mkdir 建立...