本文目錄索引:
- [root@www ~]# ls [-aAdfFhilnrRSt] 目錄名稱
- [root@www ~]# ls [--color={never,auto,always}] 目錄名稱
- [root@www ~]# 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={atime,ctime} :輸出 access 時間或改變權限屬性時間 (ctime)
- 而非內容變更時間 (modification time)
當你只有下達 ls 時,默認顯示的只有:非隱藏檔的檔名、 以檔名進行排序及檔名代表的顏色顯示如此而已。舉例來說, 你下達『 ls /etc 』之後,只有經過排序的檔名以及以藍色顯示目錄及白色顯示一般文件,綠色顯示可執行文件,僅此而已。
無論如何, ls 最常被使用到的功能還是那個 -l 的選項,爲此,很多 distribution 在默認的情況中, 已經將 ll (L 的小寫) 配置成爲 ls -l 的意思了!其實,那個功能是 Bash shell 的 alias 功能呢~也就是說,我們直接輸入 ll 就等於是輸入 ls -l 是一樣的
- 由於cp 有種種的文件屬性與權限的特性,所以,在複製時,你必須要清楚的瞭解到:
- 1、是否需要完整的保留來源文件的資訊?
- 2、來源文件是否爲連結檔 (symbolic link file)?
- 3、來源檔是否爲特殊的文件,例如 FIFO, socket 等?
- 4、來源檔是否爲目錄?
- [root@www ~]# cp [-adfilprsu] 來源檔(source) 目標檔(destination)
- [root@www ~]# cp [options] source1 source2 source3 .... directory
- 選項與參數:
- -a :相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用)
- -p :連同文件的屬性一起復制過去,而非使用默認屬性(備份常用);
- -r :遞迴持續複製,用於目錄的複製行爲;(常用)
- -i :若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
- -l :進行硬式連結(hard link)的連結檔創建,而非複製文件本身;
- -s :複製成爲符號連結檔 (symbolic link),亦即『捷徑』文件;
- -d :若來源檔爲連結檔的屬性(link file),則複製連結檔屬性而非文件本身;
- -f :爲強制(force)的意思,若目標文件已經存在且無法開啓,則移除後再嘗試一次;
- -u :若 destination 比 source 舊才升級 destination !
- 最後需要注意的,如果來源檔有兩個以上,則最後一個目的檔一定要是『目錄』才行!
-i :若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用) |
-a :相當於 -pdr 的意思,至於 pdr 請參考下列說明;(常用) -p :連同文件的屬性一起復制過去,而非使用默認屬性(備份常用); |
- 一般來說,我們如果去複製別人的數據 (當然,該文件你必須要有 read 的權限才行啊! ^_^) 時, 總是希望複製到的數據最後是我們自己的,所以,在默認的條件中, cp 的來源檔與目的檔的權限是不同的,目的檔的擁有者通常會是命令操作者本身。舉例來說, 上面的範例二中,由於我是 root 的身份,因此複製過來的文件擁有者與羣組就改變成爲 root 所有了! 這樣說,可以明白嗎?^_^
- 由於具有這個特性,因此當我們在進行備份的時候,某些需要特別注意的特殊權限文件, 例如密碼檔 (/etc/shadow) 以及一些配置檔,就不能直接以 cp 來複制,而必須要加上 -a 或者是 -p 等等可以完整複製文件權限的選項才行!另外,如果你想要複製文件給其他的使用者, 也必須要注意到文件的權限(包含讀、寫、運行以及文件擁有者等等), 否則,其他人還是無法針對你給予的文件進行修訂的動作喔!注意注意!
- 複製(cp)這個命令是非常重要的,不同身份者運行這個命令會有不同的結果產生,尤其是那個-a, -p的選項, 對於不同身份來說,差異則非常的大!底下的練習中,有的身份爲root有的身份爲一般帳號(在我這裏用vbird這個帳號), 練習時請特別注意身份的差別喔!
例題:
你能否使用vbird的身份,完整的複製/var/log/wtmp文件到/tmp底下,並更名爲vbird_wtmp呢?
答:
實際做看看的結果如下:
由於vbird的身份並不能隨意修改文件的擁有者與羣組,因此雖然能夠複製wtmp的相關權限與時間等屬性, 但是與擁有者、羣組相關的,原本vbird身份無法進行的動作,即使加上 -a 選項,也是無法達成完整複製權限的!
|
-r :遞迴持續複製,用於目錄的複製行爲;(常用) |
-l :進行硬式連結(hard link)的連結檔創建,而非複製文件本身; -s :複製成爲符號連結檔 (symbolic link),亦即『捷徑』文件; -d :若來源檔爲連結檔的屬性(link file),則複製連結檔屬性而非文件本身; |
-u :若 destination 比 source 舊才升級 destination ! |
如果來源檔有兩個以上,則最後一個目的檔一定要是『目錄』才行! |
- [root@www ~]# rm [-fir] 文件或目錄
- 選項與參數:
- -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
- -i :互動模式,在刪除前會詢問使用者是否動作
- -r :遞迴刪除啊!最常用在目錄的刪除了!這是非常危險的選項!!!
- 如果要連目錄下的東西都一起殺掉的話, 例如子目錄裏面還有子目錄時,那就要使用 -r 這個選項了!不過,使用『 rm -r 』這個命令之前,請千萬注意了,因爲該目錄或文件『肯定』會被 root 殺掉!因爲系統不會再次詢問你是否要砍掉呦!所以那是個超級嚴重的命令下達呦! 得特別注意!不過,如果你確定該目錄不要了,那麼使用 rm -r 來循環殺掉是不錯的方式!
- 我們在之前就談過,檔名最好不要使用 "-" 號開頭, 因爲 "-" 後面接的是選項,因此,單純的使用『 rm -aaa- 』系統的命令就會誤判啦! 那如果使用後面會談到的正規表示法時,還是會出問題的!所以,只能用避過首位字節是 "-" 的方法啦! 就是加上本目錄『 ./ 』即可!如果 man rm 的話,其實還有一種方法,那就是『 rm -- -aaa- 』也可以啊!
- [root@www ~]# mv [-fiu] source destination
- [root@www ~]# mv [options] source1 source2 source3 .... directory
- 選項與參數:
- -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
- -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
- -u :若目標文件已經存在,且 source 比較新,纔會升級 (update)
本文轉自:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager.php#file_dir_manage,《鳥哥的linux私房菜》,請尊重原作者的勞動成果!