第 3 章 目錄與檔案操作

65
資資資資 : 鳥鳥鳥 Linux 鳥鳥鳥 資 3 資 資資資資資資資 資資 Unix/Linux 資資資資資資 Unix/Linux 資資資資 資資資資資資 資資資資資資 資資資資資資 資資資資

Upload: hedwig

Post on 19-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

第 3 章 目錄與檔案操作. 內容: Unix/Linux 檔案系統簡介 Unix/Linux 檔案型態 目錄操作命令 檔案操作命令 檔案屬性操作 檔案壓縮. 3-1 Unix/Linux 檔案系統簡介. 階層式檔案結構 家族樹 目錄與檔案結構. 檔案系統目錄結構. Linux 裡面的目錄是呈現 『 樹狀目錄 』 的情況,就是有分支的啦 假設你需要在任意一個目錄下變換到根目錄的 etc 底下,那麼就應該使用 『 cd /etc 』 所以不論你在哪一個路徑現執行這一個指令,都會將你移動到該路徑下 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

第 3 章 目錄與檔案操作

內容: Unix/Linux 檔案系統簡介 Unix/Linux 檔案型態 目錄操作命令 檔案操作命令 檔案屬性操作 檔案壓縮

Page 2: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-1 Unix/Linux 檔案系統簡介

階層式檔案結構 家族樹 目錄與檔案結構

兒子 女兒

_1孫兒 _1孫兒

祖父母

父母伯父 姑媽

自己兄弟 姊妹

e_dir f_dir

file_3 file_4

root

b_dira_dir c_dir

d_dirfile_1 file_2

(a) 家族樹 (b) 目錄與檔案結構

Page 3: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

檔案系統目錄結構

Linux 裡面的目錄是呈現『樹狀目錄 』 的情況,就是有分支的啦 假設你需要在任意一個目錄下變換到根目錄的

etc 底下,那麼就應該使用 『 cd /etc 』 所以不論你在哪一個路徑現執行這一個指令,都會

將你移動到該路徑下 這也就是所謂的『絕對路徑』,他是從根目錄連續

寫上來的一個情況, 所以不論你在哪一個路徑現執行這一個指令,都會將你移動到該路徑下

要切換到『目前這個目錄下的 etc 目錄中』,就應該使用 『 cd etc 』

Page 4: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

檔案系統目錄結構

Page 5: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

絕對路徑 v.s 相對路徑

絕對路徑 路徑的寫法『一定由根目錄 / 寫起』

例如: /usr/share/doc 這個目錄。 相對路徑

路徑的寫法『不是由 / 寫起』 例如由 /usr/share/doc 要到 /usr/share/man

底下時,可以寫成: 『 cd ../man』 這就是相對路徑的寫法啦!相對路徑意指『相對於

目前工作目錄的路徑!』

Page 6: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

絕對路徑 v.s 相對路徑

由於不同的人喜歡安裝在不同的目錄之下 假設甲安裝的目錄是

/usr/local/packages/etc, /usr/local/packages/bin 及 /usr/local/packages/man

乙卻喜歡安裝在 /home/packages/etc, /home/packages/bin,

/home/packages/man 三個目錄中 請問如果需要用到絕對路徑的話,那麼就會很

麻煩!這個時候相對路徑的寫法就顯的特別的重要了!

Page 7: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

絕對路徑 v.s 相對路徑

一個目錄 /data4/staiwan19961109/models-3/smoke

另一個目錄在 /data4/staiwan19961109/models-3/cctm 那麼我從第一個要到第二個目錄去的話,怎麼寫比較方便?

當然是 『 cd ../cctm 』比較方便! 但對於檔案的正確性來說,『絕對路徑的

正確度要比較好~ 』 絕對路徑的寫法雖然比較麻煩,但是可以肯定這

個寫法絕對不會有問題。 如果使用相對路徑在程式當中,則可能由於您執

行的工作環境不同,導致一些問題的發生

Page 8: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-1 Unix/Linux 檔案系統簡介

檔案名稱 File_name.file_type.file_ext_typ

e File_name: 檔案名稱 File_type: 副檔名 File_ext_type: 擴充副檔名

Page 9: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-1 Unix/Linux 檔案系統簡介

絕對路徑 /a_dir /b_dir/file_1 /b_dir/d_dir/file_3

e_dir f_dir

file_3 file_4

/

b_dira_dir c_dir

d_dirfile_1 file_2

/c_dir/a_dir /b_dir

/b_dir/d_dir /b_dir/file_2/b_dir/file_1

/b_dir/d_dir/f_dir/b_dir/d_dir/e_dir

/b_dir/d_dir/f_dir/file_4/b_dir/d_dir/e_dir/file_3

Page 10: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-1 Unix/Linux 檔案系統簡介

相對路徑 『 . 』:目前目錄 『 .. 』:目前目錄的父目錄

f_dirfile_2

file_3

b_dir

d_dir

/b_dir

.﹝﹞目前目錄

..﹝ ﹞父目錄

file_1

../file_1﹝ ﹞父目錄底下的檔案

file_2﹝ ﹞目前目錄底下的檔案

f_dir﹝ ﹞目前目錄底下的子目錄

f_dir/file_3﹝ ﹞

使用者所在位置

Page 11: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-2 Unix/Linux 檔案型態 (1) 可區分為四種型態

一般檔案 (Ordinary file) 目錄檔案 (Directory file) 鏈結檔案 (Linking file) 特殊檔案 (Special file)

檔案屬性

檔案名稱

最後修改日期

檔案大小

群組名稱

連結數目擁有者名稱

存取許可權

drwxrwxr-x 2 tsnien tsnien 4096 Mar 29 09:24 d1

Page 12: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-2 Unix/Linux 檔案型態

一般檔案 字元檔案 二進位檔案 紀錄檔案

目錄檔案 儲存子目錄與檔案索引

Page 13: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-2 Unix/Linux 檔案型態 (3)

鏈路檔案 $ ln –s file_2

file_3

檔案內容.....................

原檔案鏈路檔案

(1) 建立新檔案(2) 連結檔案

file_3 file_2

(3) 修改 檔案內容

(4) 檔案內容 被變更

Page 14: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-2 Unix/Linux 檔案型態 (5) 檔案存取許可權

rwx rwx rwx 擁有者( Owner ): rwx --- --- 群組( Group ): --- rwx --- 其他人( Other ): --- --- rwx

三種使用權限 讀取 (Read, r) 寫入 (Write, w) 執行 (Execute, x)

-rwxrwxr-x 2 tsnien tsnien 4096 Mar 29 09:24 file_1

other 許可權

group 許可權

owner 許可權

(group)檔案所屬群組

(owner)檔案擁有者

最後修改時間

Page 15: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-3 目錄操作命令 顯示工作目錄

pwd 建立新目錄

mkdir 改變工作目錄

cd 顯示目錄的內容

ls 刪除目錄

rmdir

Page 16: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-4 檔案操作命令

複製檔案 – cp 顯示檔案內容 – cat 以頁方式顯示檔案內容 –

more 搬移檔案 – mv 刪除檔案 – rm 尋找檔案 – find 查閱檔案的屬性 - file

Page 17: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

使用者與群組

檔案擁有者 群組概念 其他人的概念

Page 18: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

檔案擁有者

由於 Linux 是個多人多工的系統 因此常常會有多人同時使用這主機來進行工作 為了每個人的隱私權及每個人喜好的工作環境

, 因此『檔案擁有者』的角色就顯的相當重要 例如當你將你的 e-mail 情書轉存成檔案之後,放

在您自己的家目錄,總不希望被其他人看見 就把該檔案設定成『只有檔案擁有者,就是我,才

能看與修改這個檔案的內容』,由於有設定適當的權限, 所以其他人自然無法知道該檔案的內容!

Page 19: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

群組概念

群組最簡單的功能之一,就是當在團隊開發資源的時候最有用 假如我的主機上面有兩個團體,第一個團體名

稱為 testgroup , 而成員是 test1, test2, test3

第二個團體名稱為 treatgoup ,團員為 treat1, treat2, treat3 這兩個團體之間是互相有競爭性質的, 但是卻又

要繳交同一份報告,然而每組團員又需要同時可以修改自己的團體內任何人所建立的檔案, 且不能讓非自己團體的其他人看到自己的檔案內容!

Page 20: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

群組概念

如果 teacher 這個帳號是 testgroup 與 treatgroup 這兩個群組的老師,他想要同時觀察兩者的進度 因此需要兩邊的群組都能夠進去觀看,可以設

定 teacher 這個帳號『同時支援 testgroup 與 treatgroup 這兩個群組!』

每個人都可以有多個群組的支援!

Page 21: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

群組概念

『家庭』的觀念來進行解說 假設有一家人,家裡只有三兄弟,分別是王大毛、王二毛與王三毛三個人, 而這個家庭是登記在王大毛的名下

由於王家三個人各自擁有自己的房間,所以,王二毛雖然可以進入王三毛的房間, 但是二毛不能翻三毛的抽屜喔!那樣會被三毛 K 的!因為抽屜裡面可能有三毛自己私人的東西,例如情書啦,日記啦等等的, 這是『私人的空間』,所以當然不能讓二毛拿囉!

由於共同擁有客廳,所以王家三兄弟可以在客廳打開電視機、翻閱報紙、坐在沙發上面發呆! 只要是在客廳的玩意兒,三兄弟都可以使用喔!因為大家都是一家人!

『王大毛家』就是所謂的『群組 』

Page 22: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

其他人的概念

張小豬﹙所謂的『其他人, Others 』 ﹚,是張小豬家的人,與王家沒有關係啦! 除非王家認識張小豬,然後開門讓張小豬進來王家,否則張小豬永遠沒有辦法進入王家, 更不要說進到王三毛的房間啦!

不過,如果張小豬透過關係認識了三毛,並且跟王三毛成為好朋友, 那麼張小豬就可以透過三毛進入王家

因此,在 Linux 裡面,任何一個檔案都具有『 User, Group 及 Others 』三個權限!

Page 23: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

檔案權限-rwxrwxr-x 2 tsnien tsnien 4096 Mar 29 09:24 file_1

other 許可權

group 許可權

owner 許可權

(group)檔案所屬群組

(owner)檔案擁有者

最後修改時間

Page 24: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

『萬能的天神』 這個天神具有無限的神力, 所以他可以到達任何他想要去的地方,那個人在 Linux 系統中的身份代號是 『 root 』啦!

Page 25: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-5 檔案屬性操作

如何改變檔案權限 更改檔案權限、屬性 – chmod

更改檔案擁有者 – chown

更改檔案群組 – chgrp

更改檔案日期 – touch

Page 26: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 檔案屬性

26

Page 27: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 檔案屬性 第一個屬性代表這個檔案是『目錄、檔案或

連結檔等等』: 當為 [ d ] 則是目錄,例如上表的第 11 行; 當為 [ - ] 則是檔案,例如上表的第 5 行; 若是 [ l ] 則表示為連結檔 (link file); 若是 [ b ] 則表示為裝置檔可供儲存的周邊設備;

若是 [ c ] 則表示為裝置檔裡面的序列埠設備,

例如鍵盤、滑鼠。

27

Page 28: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 檔案屬性

屬性中,三個為一組,且均為『 rwx 』 的三個參數的組合。

[ r ]代表可讀 (read) [ w ]代表可寫 (write) [ x ]代表可執行 (execute)

第一組為『擁有人的權限』; 第二組為『同群組的權限』; 第三組為『其他非本群組的權限』。

Page 29: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 檔案屬性

若為底下的樣式時,請問非 root 的其他人是否可以進入該目錄呢 ?

有可讀 [ r ] 存在 !!答案是非 root 這個帳號的其他使用者均不可進

入 .ssh 這個目錄 因為 x 與 目錄 的關係相當的重要, 如果您在該

目錄底下不能執行任何指令的話,那麼自然也就無法進入了

因此, 如果您想要開放某個目錄讓一些人進來的話, 請記得將該目錄的 x 屬性給開放

Page 30: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 目錄配置 Linux 目錄配置的依據 FHS

Filesystem Hierarchy Standard FHS 定義出兩層規範出來

第一層是規範出在根目錄 ( / ) 底下各個主要的目錄應該是要放置什麼樣的檔案 /etc 應該要放置設定檔 /bin 與 /sbin 則應該要放置可執行檔 /usr 及 /var 這兩個目錄的次目錄

第二層則是針對來定義的 /var/log 放置系統登錄檔 /usr/share 放置共享資料

Page 31: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 目錄配置 Linux 所有的檔案與目錄都由根目錄 / 開始

的 那是所有目錄與檔案的源頭

這種目錄配置方式稱:『目錄樹 (directory tree)』 目錄樹的啟始點為根目錄 (/, root) 每一個目錄不止能使用本地端的 partition 的檔

案系統,也可以使用網路上的 filesystem 可以利用 Network File System (NFS) 伺服器掛載某特定目錄

每一個檔案在此目錄樹中的檔名 ( 包含完整路徑 )都是獨一無二的

Page 32: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

根據檔名寫法的不同,也可將所謂的路徑 (path) 定義為絕對路徑 (absolute) 與相對路徑 (relative)

絕對路徑為 由根目錄 (/) 開始寫起的檔名或目錄名稱

例如 /home/dmtsai/.bashrc

相對路徑 相對於目前路徑的檔名寫法

例如 ./home/dmtsai 或 ../../home/dmtsai/

Page 33: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

舉例來說,目前在 /home 這個目錄下, 如果想要進入 /var/log 這個目錄時,怎麼寫 ? cd /var/log (absolute) cd ../var/log (relative)

因為您在 /home 底下,所以要回到上一層 (../) 之後,才能繼續往 /var 來移動的!

. :代表當前的目錄,也可以使用 ./ 來表示

.. :代表上一層目錄,也可以 ../ 來代表

Page 34: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Page 35: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

FHS 目錄檔案內容

Page 36: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

FHS 目錄檔案內容

Page 37: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

FHS 目錄檔案內容

Page 38: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Page 39: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

FHS 目錄檔案內容

Page 40: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

最好獨立成為單一 partition 的目錄

安全性與特殊功能性, 而希望能夠獨立成為一個自己的 partition /home, /usr, /var, /tmp

系統上的使用者個人家目錄在 /home 裡面, 這個目錄也是可能被使用的最頻繁的目錄之一

可能會希望針對每個人限制他可以使用的最大硬碟總量 (quota) ,所以必須要將 /home 獨立出來

/usr 則是一些程式安裝的目錄,也可以獨立出來 /var/ , 這個目錄記錄了相當多的常用資料,讀

取真很頻繁,是『很容易掛點的 partition 』

Page 41: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

重要的幾個目錄 /etc

系統設定檔放置的地方, 包括系統上的帳號與密碼 (/etc/passwd, /etc/shadow) ,還有開機時所要用到的各項設定值 (/etc/sysconfig/*) ,還有各主要的網路服務的設定檔

/usr/local 自己開發或自行額外安裝的軟體放置在這個

/usr/local 目錄 /var

管理系統運作過程中的重要中間暫存資料的,例如 /var/lib 與 /var/run

Page 42: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

一般目錄的配置情況 一般大型主機都不會將所有的資料放置在一

個磁碟中 ( 就是只有一個 『 / 』根目錄 ) 安全性考量

系統通常是在 /usr/ 中,而個人資料則可能放置在 /home 當中,至於一些開機資料則放置在 /etc 當中。如果將所有的資料放在一起,當你的系統不小心被駭客破壞,或者不小心自己砍了一個小東西, 則所有的資料檔案也都跟著不見了

便利性升級系統,有些資料例如 /home 裡面的資料為個

人用戶的資料,似乎與系統無關!所以如果你將這些資料分別放置於不同的磁碟, 則你要升級或者進行一些系統更動時,將比較有彈性

Page 43: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

常見的磁碟分佈情況

可以將你的系統做成這樣的 partition 分佈 / /boot /usr /home /var

43

Page 44: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

常見的磁碟分佈情況

/ 根目錄可以分配約 1 GB 以內 /boot 大概在 50 MB 就可以了,因為開

機檔案並不大 /var 就至少需要 1GB 以上,因為你的

mail 、 proxy 預設的儲存區都在這個目錄中

44

Page 45: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

常見的磁碟分佈情況

/home 與 /usr 通常是最大的 /home

因為你所安裝的資料都是在 /usr/ 當中,而用戶資料則放置在 /home 當中,因此通常大家都會建議你將所剩下的磁碟空間平均分配給這兩個目錄

/usr 大概給個 10G 就很多了~其他的可以都給

/home

45

Page 46: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 支援的檔案系統

同樣的硬碟。 但是,每種作業系統都有其獨特的讀取檔案的方法,也就是說, 每種作業系統對硬碟讀取的方法不同,所以就造就了不同的檔案系統了 Windows 98 預設的檔案系統是 FAT (或

FAT16) 檔案系統 Windows 2000 有所謂的 NTFS 檔案系統 Linux 的正統檔案系統則為 ext2 ( Linux

second extended file system, ext2fs )

46

Page 47: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 支援的檔案系統

系統能不能讀取某個檔案系統,與『核心功能』有關

你必須要將你所想要支援的檔案系統編譯到你的核心當中才能被支援

Windows 與 Linux 安裝在同一個硬碟的不同 partition 時, Windows 將不能取用 Linux 的硬碟資料 因為 Windows 的核心不認識 Linux 的檔案

系統

47

Page 48: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

Linux 支援的檔案系統

Fedora Core IV 預設檔案系統為 ext3 (Third Extended File System) , 他是 Ext2 的升級版

ext3 還是向下支援 ext2 日誌式檔案系統

如果你需要將你原有的 Windows 系統也掛載在 Linux 底下的話,那麼 Linux 同時也支援 MS-DOS, VFAT, FAT, BSD 等等的檔案系統

NTFS 檔案系統則不見得每一個 Linux distribution 都有支援

可以到你的 Linux 系統的: /lib/modules/`uname -r`/kernel/fs

48

Page 49: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

ext3日誌式檔案系統

日誌式檔案系統 ext3 其實只是多做了一個日誌式資料的紀錄

當我們要在將資料寫入硬碟時, ext2 是直接將資料寫入,但是 ext3 則會將這個『要開始寫入』的訊息寫入日誌式記錄區, 然後才開始進行資料的寫入。在資料寫入完畢後,又將『完成寫入動作』的訊息寫入日誌式記錄區

49

Page 50: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

ext3日誌式檔案系統

早期的 ext2 檔案系統如果發生類似斷電後時,檔案系統就得要檢查檔案一致性。 這個檢查的過程要將整個 partition 內的檔案做一個完整的比較

ext3 的話,那麼只要透過檢查『日誌記錄區』就可以知道斷電時,是否有哪些檔案正在進行寫入的動作, 只要檢查這些地方即可 這樣就能夠節省很多檔案檢查的時間

50

Page 51: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

3-5 檔案屬性操作

如何改變檔案權限 更改檔案權限、屬性 – chmod

更改檔案擁有者 – chown

更改檔案群組 – chgrp

更改檔案日期 – touch

Page 52: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變所屬群組 - chgrp

這個指令就是 change group 的縮寫 要改變成為的群組名稱必須要在 /etc/group

裡面存在的名稱才行,否則就會顯示錯誤

Page 53: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變所屬群組 - chgrp

53

Page 54: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變所屬群組 - chgrp

假設您已經知道在 /etc/group 裡面已經存在一個名為 users 的群組,但是 testing 這個群組名字就不存在 /etc/group 當中了 此時改變群組成為 users 與 testing 會有什

麼現象發生呢

54

Page 55: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變檔案擁有者 - chown

改變擁有者就是 change owner 使用者必須是已經存在系統中的,也就是在

/etc/passwd 這個檔案中有紀錄的使用者名稱才行改變。

chown 的用途還滿多的,他還可以順便直接修改群組的名稱呢

如果要連目錄下的所有次目錄或檔案同時更改檔案擁有者的話,直接加上 -R 的參數即可

55

Page 56: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變檔案擁有者 - chown

56

Page 57: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變檔案擁有者 - chown

麼時候要使用 chown 或 chgrp 呢?最常見的例子就是在 copy 檔案給你之外的其他

人時,我們使用最簡單的 cp 來說明

將 .bashrc 這個檔案拷貝成為 .bashrc_test ,且是要給 bin 這個人 .bashrc_test 還是屬於 root 所有,如此,即

使你將檔案拿給 bin 這個使用者了,那仍然無法修改

57

Page 58: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變九個屬性 - chmod

檔案屬性的改變使用的是 chmod 這個指令 屬性的設定方法有兩種 使用數字 使用符號 來進行屬性的變更。

這九個屬性是三個三個一組的!可以使用數字來代表各個屬性,各屬性對照表如下 r : 4 w : 2 x : 1

58

Page 59: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變九個屬性 - chmod

同一組 (owner/group/others) 的三個屬性 (r/w/x) 是需要累加的 例如當屬性為 [-rwxrwx---] 則是

owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0

所以等一下我們設定屬性的變更時,該屬性的數字就是 【 770 】

59

Page 60: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變九個屬性 - chmod

如要將 .bashrc 這個檔案所有的屬性都打開

60

Page 61: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

改變九個屬性 - chmod

那如果要將屬性變成 『 -rwxr-xr-- 』呢?那麼就成為 [4+2+1][4+0+1][4+0+0]=754 囉!所以你需要下達 chmod 754 filename 以 vi 編輯文字檔後,屬性通常是 -rw-rw-rw-

也就是 666 的屬性,如要將他變成可執行檔,且不讓其他人修改此一檔案的話, 那就需要 -rwxr-xr-x 這一個 755 的屬性 chmod 755 test.sh

有些檔案不希望被其他人看到,例如 -rwxr----- chmod 740 filename

61

Page 62: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

符號類型改變檔案權限

基本上就九個屬性分別是 (1)user (2)group (3)others 三群 那麼我們就可以藉由 u, g, o 來代表三群的屬

性 a 則代表 all 亦即全部的三群 讀寫的屬性就可以寫成了 r, w, x

62

Page 63: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

符號類型改變檔案權限

『設定』一個檔案的屬性為『 -rwxr-xr-x』 user (u) :具有可讀、可寫、可執行的權限 group 與 others (g/o) :具有可讀與執行的

權限

63

Page 64: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

如果不知道原先的檔案屬性,只想要增加 .bashrc 這個檔案的每個人均可寫入的權限

64

Page 65: 第  3  章 目錄與檔案操作

資料來源 :鳥哥的 Linux 私房菜

如果是要將屬性去掉而不更動其他的屬性呢?例如要拿掉所有人的 x 的屬性

僅以 – 拿掉 x 則其他兩個保持當時的值不變 想要教一個朋友如何讓一個程式可以擁有執行

的權限, 但又不知道該檔案原本權限為何,利用 chmod a+x filename ,就可以讓該程式擁有執行的權限了

65