1挤忙、Linux上的文件管理類命令常用的使用方法
本篇涉及命令:cat,tac,more,less,head,tail,file,stat,touch,which,whatis,whereis,ls,mkdir,rmdir,tree,cp,mv,rm
?文本文件查看類命令
??cat 查看文件內(nèi)容(concatenate)
????cat命令用于查看一個(gè)或多個(gè)文本文件內(nèi)容逊桦,可以將兩個(gè)或兩個(gè)以上的文件連接起來并顯示;cat命令缺點(diǎn)是不能翻屏
???語法:cat
??????cat 文件名 ...
??????cat 選項(xiàng)... 文件名...
??????cat 文件1 文件2 …
??????cat [OPTION]... [FILE]...
???選項(xiàng):
?????-n,--number [FILE …]:顯示文件內(nèi)容并輸出行號(hào)
?????-b,--number-nonblank:忽略空白行卜高;只對(duì)非空白行進(jìn)行編號(hào)
?????-s,--squeeze-blank:不輸出多行空行
?????-E,--show-ends:顯示行結(jié)束符 "$"
???cat命令示例
?????查看/etc/fstab文件內(nèi)容并輸出行號(hào)
??tac連接文件并反向顯示文件內(nèi)容
????tac命令的作用是顯示文體文件的內(nèi)容弥姻,和cat不同的是tac命令是逆向(反向)顯示文件內(nèi)容
???語法:tac [選項(xiàng)]... [文件名] ...
??????tac 文件1 文件2 …
??????tac [OPTION]... [FILE]...
???tac命令的選項(xiàng)和cat命令一致
??more以全屏幕的方式分頁(yè)顯示文本文件的內(nèi)容
????當(dāng)文件太大,用cat命令無法查看時(shí)掺涛,可以用more命令查看文件內(nèi)容
???語法:more 文件名...
??????more +行號(hào) 文件名...
??????more [OPTIONS...] FILE...
???選項(xiàng):
?????-d:顯示翻頁(yè)及退出提示
???more命令的快捷鍵:
快捷鍵 | 說明 |
---|---|
空格庭敦,F(xiàn) | 顯示下一頁(yè)文本文件內(nèi)容 |
回車 | 顯示下一個(gè)行文本內(nèi)容 |
B | 顯示上一行文本內(nèi)容 |
q,Q | 退出 |
??less 分頁(yè)顯示文本文件內(nèi)容
????less命令用于分頁(yè)顯示文本文件的內(nèi)容薪缆,less是more的升級(jí)版(less is more)和more命令不同的是秧廉,less命令可以向上翻頁(yè),而more命令卻不能拣帽;其實(shí)疼电,man命令是調(diào)用less命令來工作的;所以减拭,less命令顯示文本的用法及快捷鍵與man命令一樣蔽豺;less命令支持?jǐn)U展的正則表達(dá)式
???語法:less 文件名
??????less 選項(xiàng)]... 文件名
??????less [OPTIONS...] FILE...
???選項(xiàng):
?????-e,--quit-at-eof:顯示完文件內(nèi)容,自動(dòng)退出
?????-f,--force:強(qiáng)制顯示文件內(nèi)容
?????-i,--ignore-case:顯示文件內(nèi)容并忽略字符大小寫
?????-N,--LINE-NUMBERS:顯示時(shí)拧粪,在每一行的行首加上行號(hào)
?????-s,--squeeze-blank-lines:連續(xù)多個(gè)空行變成一行顯示
???快捷鍵
????參考man快捷鍵
??head 顯示文本文件的頭幾行內(nèi)容
????head命令用于顯示文件頭幾行的內(nèi)容修陡,默認(rèn)顯示文本文件前十行
???語法:head 文件名...
??????head -行數(shù) 文件名...
??????head 選項(xiàng) 文件名...
??????head [OPTION]... [FILE]...
???選項(xiàng):
?????-c,--bytes SIZE:顯示指定字節(jié)數(shù)
?????-n,--lines NUMBER:顯示指定的行數(shù)
?????-v,--verbose:顯示文件名
?????-q,--quiet:不顯示文件名;默認(rèn)
??tail 顯示文件后幾行的內(nèi)容
????tail命令用于顯示文件最后的內(nèi)容既们,默認(rèn)顯示文本文件后十行
???語法:tail 文件名...
??????tail -行數(shù) 文件名
??????tail 選項(xiàng) 文件名...
??????tail [OPTION]... [FILE]...
???選項(xiàng):
?????-c,--bytes SIZE:顯示指定字節(jié)數(shù)
?????-n,--lines NUMBER:顯示指定的行數(shù)
?????-f,--follow:顯示文件內(nèi)容后濒析,不退出;跟蹤顯示文件新追加的內(nèi)容
???????用Ctrl+C:退出
?????-v,--verbose:顯示文件名
?????-q,--quiet:不顯示文件名啥纸;默認(rèn)
???tail命令示例
?????查看/etc/passwd文件的后5行
?????跟蹤日志信息
?文件操作類命令
??文件的時(shí)間戳
??access time:文件的訪問時(shí)間号杏;簡(jiǎn)寫“atime”,讀取文件內(nèi)容
????在CentOS 7上不會(huì)立即改變
??modify time:文件的修改時(shí)間;簡(jiǎn)寫“mtime”盾致,內(nèi)容發(fā)生改變
??change time:文件的改變時(shí)間主经;簡(jiǎn)寫“ctime”,元數(shù)據(jù)發(fā)生改變
????atimi,mtime發(fā)生改變時(shí)庭惜,ctime才會(huì)進(jìn)行改變
??CentOS 7多了一個(gè)“創(chuàng)建時(shí)間”
???touch 創(chuàng)建空文件 or 更改文件的時(shí)間戳
????touch命令用于創(chuàng)建空文件和修改文件時(shí)間戳(不能修改改變時(shí)間)罩驻,如果文件不存在就創(chuàng)建文件,如果文件存在护赊,默認(rèn)就會(huì)更新文件的時(shí)間戳為此刻的時(shí)間戳
????語法:touch 文件名...
???????touch 選項(xiàng)... 文件名...
???????touch FILENAME-$(date +%F-%H-%M-%S)
???????touch [OPTION]... FILE...
????選項(xiàng):
??????-a:只更改訪問時(shí)間 (atime)
??????-m:只更改修改時(shí)間 (mtime)
??????-d:同時(shí)更改訪問時(shí)間和修改時(shí)間
??????-c,--no-create:如果文件不存在惠遏,則不予創(chuàng)建
??????-h,--no-dereference:更改軟鏈接文件;而不是軟鏈接所指向的文件
??????-r,--reference FILE:使用指定文件(參照文件)的時(shí)間戳骏啰,而不是當(dāng)前時(shí)間
??????-t STAMP:使用指定時(shí)間戳节吮,而不是現(xiàn)在時(shí)間;如果文件存在判耕,則更改文件的訪問時(shí)間和文件的修改時(shí)間的時(shí)間戳透绩,如果文件不存在,則創(chuàng)建一個(gè)文件壁熄,指定文件的訪問時(shí)間和文件修改時(shí)間的時(shí)間戳帚豪;格式:“年月日小時(shí)分鐘.秒”
[[CC]YY]MMDDhhmm[.ss]
????注意:-d 和-t 選項(xiàng)可接受不同的時(shí)間/日期格式
????touch命令示例
?????創(chuàng)建一個(gè)空文件
?????更改fstab文件的訪問時(shí)間
?????更改fstab文件的修改時(shí)間
?????做一個(gè)軟鏈接文件并將/etc/passwd文件的時(shí)間戳設(shè)置為此文件的時(shí)間戳
關(guān)于stat,cp命令的用法:請(qǐng)見下文
??文件的兩類數(shù)據(jù)
??元數(shù)據(jù):文件名、大小草丧、類型狸臣、權(quán)限、屬主屬組方仿、文件的時(shí)間戳(非文件的組成部分)...
??數(shù)據(jù):文件里的內(nèi)容(文件的組成部分)
??文件的修改與改變
??修改:指文件的內(nèi)容發(fā)生改變(數(shù)據(jù))
??改變:指文件的屬性發(fā)生改變(元數(shù)據(jù))
??注意:元數(shù)據(jù)發(fā)生改變數(shù)據(jù)一不定變固棚,而數(shù)據(jù)發(fā)生改變?cè)獢?shù)據(jù)一定變
???stat 顯示文件或文件系統(tǒng)狀態(tài)信息(元數(shù)據(jù)信息)
????語法:stat 文件或目錄...
???????stat [OPTION]... FILE...
????選項(xiàng):
??????-c,--format FORMAT:輸出指定信息
???????FORMAT:可以指定分隔符進(jìn)行輸出
?????????%n:只顯示文件的名稱
?????????%s:只顯示文件的總大小;以字節(jié)為單位
?????????%b :只顯示占據(jù)的磁盤塊數(shù)
?????????%o:最佳I/O傳輸大小
?????????%F:只顯示文件類型
?????????%i:只顯示inode
?????????%h:只顯示鏈接次數(shù)
?????????%C:只顯示SELinux的安全上下文
?????????%a:只顯示八進(jìn)制訪問權(quán)限
?????????%A:顯示權(quán)限
?????????%u:只顯示數(shù)字UID
?????????%U:只顯示文件的屬主
?????????%g:只顯示數(shù)字GID
?????????%G:只顯示文件的屬組
?????????%x:只顯示文件的訪問時(shí)間
?????????%y:只顯示文件的修改時(shí)間
?????????%z:只顯示文件的改變時(shí)間
?????????%m:掛載點(diǎn)
??????-f:顯示文件系統(tǒng)狀態(tài)而不是文件狀態(tài)
??????-t:輸出簡(jiǎn)結(jié)信息
??????-L:顯示軟鏈接所指向的文件的信息
????stat命令輸出信息說明
??????File:文件名稱
??????Size:文件大小
??????Blocks:占據(jù)的磁盤塊數(shù)
??????IO Block:IO塊大小
??????普通文件[regular file]:文件類型
??????Device:所在設(shè)備
??????Inode節(jié)點(diǎn)號(hào)
??????Links:被鏈接次數(shù)
??????Access(第一個(gè)):訪問權(quán)限
??????Context:SELinux的安全上下文
??????Uid:uid號(hào)和屬主
??????Gid:gid號(hào)和屬組
??????Access(第二個(gè)):文件最近一次的訪問時(shí)間
??????Modify:文件的修改時(shí)間
??????Change:文件的改變時(shí)間
?目錄類命令
??pwd 顯示當(dāng)前目錄(Print Working Directory)
????pwd命令是一個(gè)shell內(nèi)部命令,用于顯示當(dāng)前工作目錄的路徑
???語法:pwd
??????pwd 選項(xiàng)…
???選項(xiàng):
?????-P:如果目錄是個(gè)軟鏈接仙蚜,則顯示軟鏈接所指向的目錄
???pwd命令的相關(guān)的環(huán)境變量
????$PWD:保存了當(dāng)前目錄路徑
????$OLDPWD:保存了上一級(jí)目錄路徑
???一條命令兩種實(shí)現(xiàn)
????pwd是一個(gè)內(nèi)部命令,/bin/pwd是一個(gè)外部命令厂汗,前者用于顯示當(dāng)前的工作目錄委粉,后者用于顯示當(dāng)前所在的完整的工作目錄
????內(nèi)部命令的‘優(yōu)先級(jí)’要高于外部命令
??mkdir 創(chuàng)建新目錄 (Make Directory)
????mkdir命令用于創(chuàng)建目錄,可一次性創(chuàng)建一個(gè)或多個(gè)目錄娶桦; 如果目錄存在贾节,則不會(huì)創(chuàng)建其目錄,并顯示錯(cuò)誤信息
???語法:mkdir 目錄名...
??????mkdir 選項(xiàng)]... 目錄名...
??????mkdir [OPTION]... DIRECTORY...
???選項(xiàng):
?????-m,--mode 權(quán)限值 (MODE):創(chuàng)建目錄時(shí)指定其僅限
?????-p,--parents:連續(xù)創(chuàng)建多層目錄衷畦,目錄存在不報(bào)錯(cuò)
?????-v:顯示創(chuàng)建過程
???新建目錄注意事項(xiàng)(文件名使用法則)
???1. 文件名嚴(yán)格區(qū)分大小寫 (file1, File1, FILE1 不是同一個(gè)文件)
???2. 文件名可使用除“/”以外的任意字符栗涂,但不建議使用特殊字符(~,`,!,=,|,,<,>,?,(,),&,*,^,%,$,#,@...)
???3. 目錄也是文件,在同一路徑下祈争,兩個(gè)文件不能同名
???4. 文件名長(zhǎng)度最長(zhǎng)不能超過255個(gè)字符
???5. 文件名以“.”開頭的文件均為隱藏文件
???6. 文件名如果有空格斤程,就用引號(hào)””引起來
??注意:路徑基名方為命令的作用對(duì)象;基名之前的路徑必須得存在
??rmdir 刪除空目錄 (Remove empty directories)
???語法:rmdir 目錄...
??????rmdir 選項(xiàng)... 目錄...
??????rmdir [OPTION]... DIRECTORY...
???選項(xiàng):
?????-p,--parents:刪除指定目錄后菩混,若該目錄的上層目錄是空目錄忿墅,則一并刪除
?????-v,--verbose:顯示刪除過程
??mktemp 創(chuàng)建臨時(shí)文件或目錄
????mktemp命令用于在shell腳本中創(chuàng)建臨時(shí)文件扁藕,如不加任何選項(xiàng),則會(huì)在/tmp目錄下創(chuàng)建一個(gè)臨時(shí)文件
???語法:mktemp
??????mktemp 文件名
??????mktemp 選項(xiàng)
??????mktemp 選項(xiàng) 文件名
??????mktemp [OPTION]... [TEMPLATE]
???選項(xiàng):
?????-d,--directory:創(chuàng)建一個(gè)目錄而非文件
?????-q,--quiet:靜默模式疚脐,執(zhí)行時(shí)若發(fā)生錯(cuò)誤亿柑,不會(huì)顯示任何信息
???注意
- ?新建的文件格式必須是“FILENAME.XX.....”
- ?一次只能創(chuàng)建一個(gè)文件
- ?此命令多用于shell腳本
??tree 以樹形結(jié)構(gòu)顯示目錄內(nèi)容
???語法:tree
??????tree [選項(xiàng)]... 目錄...
???選項(xiàng):
?????-d:只顯示目錄
?????-p:只顯示由指定模式匹配到的路徑
?????-L LEVEL:指定顯示層級(jí)的數(shù)目
??ls 列出目錄內(nèi)容 (List)
????ls/dir命令用于顯示當(dāng)前目錄或指定目錄下的文件列表
???語法:ls
??????ls 目錄或文件路徑...
??????ls 選項(xiàng)... 目錄或文件路徑...
??????ls [OPTION]... [DIR|FILE]...
???選項(xiàng):
?????-a:顯示當(dāng)前目錄下的所有文件,包括隱藏文件
?????-A:與-a選項(xiàng)的作用基本類似棍弄,但不會(huì)顯示“.”和“..”
?????-l:以長(zhǎng)格式顯示(Long)顯示文件類型和目錄列表望薄;包括權(quán)限、大小呼畸、最后更新時(shí)間等詳細(xì)信息式矫,ls –l也可簡(jiǎn)寫成“l(fā)l”
???????ls -l參數(shù)說明
???從左到右第一個(gè)字符“-”:文件類型
?????文件類型:-, d, b, c, l, s, p
???從第二到第十個(gè)字符“rw-r--r--”:文件的訪問權(quán)限
???第十一位字符“1”:文件被硬鏈接的次數(shù)
???第十二位字符“root左”:文件屬主(owner)
???第十三位字符“root右”:文件屬組(group)
???第十四位字符“465”:文件的大小(size)
???8月 31 18:19:文件最近一次被修改的時(shí)間
???最后一位字符“zhangdaifu”:文件名稱
?????-h:以更人性化(human-readable)的方式顯示出目錄或文件的大幸鄹(KB采转、MB),默認(rèn)大小單位為字節(jié)(B)瞬痘,此選項(xiàng)需要結(jié)合“-l”選項(xiàng)一起使用
對(duì)文件大小單位換算故慈;換算后結(jié)果可能會(huì)非精確值
?????-d:顯示當(dāng)前目錄(Directory)本身的屬性(也可以顯示文件),而不是顯示目錄中的內(nèi)容框全,此選項(xiàng)需要結(jié)合“-l”選項(xiàng)一起使用
?????-i:顯示每個(gè)文件的Inode
?????-r:以文件名逆向排序(降序)的方式進(jìn)行顯示
?????-S:根據(jù)文件大小進(jìn)行排序顯示
?????-t:根據(jù)修改時(shí)間排序
組合選項(xiàng):-ltr:根據(jù)上一次修改時(shí)間進(jìn)行排序
?????-R:以遞歸(Recursive)的方式顯示指定目錄及其子目錄中的所有內(nèi)容
?????-c:結(jié)合“-lt”選項(xiàng)察绷;根據(jù)ctime進(jìn)行排序并顯示文件狀態(tài)最后更改的時(shí)間
?????-L:當(dāng)顯示軟鏈接文件時(shí),顯示軟鏈接所指向的文件津辩,而非軟鏈接本身
?????-p:對(duì)目錄加上表示符號(hào)“/”
?????-m:以逗號(hào)分隔文件拆撼,并填滿整行行寬
?????-F:加上文件類型的指示符號(hào)(*/=@| 其中一個(gè))
?????-B:不列出任何以"~"字符結(jié)束的文件
?????-G:結(jié)合“-l”選項(xiàng);根據(jù)一個(gè)長(zhǎng)列表的形式顯示喘沿,不輸出組名
?????-n:類似“-l”選項(xiàng)闸度,但列出每個(gè)文件的UID 和GID
?????-q:以"?“字符代替無法顯示的字符
?????-Q:將顯示的文件用" "括起來
?????-T:指定制表符(Tab)的寬度,而非8 個(gè)字符
?????-id:只顯示當(dāng)前目錄的詳細(xì)屬性蚜印,不顯示目錄下的內(nèi)容
?????-Z:顯示SELinux的相關(guān)信息
?????--time-style=STYLE:查看文件的詳細(xì)時(shí)間信息莺禁;需結(jié)合“-l”選項(xiàng)
???????long-iso
???????full-iso
???????iso
???????locale
???????還可以+date格式符
?????--color:?jiǎn)⒂妙伾▌t區(qū)分不同類型的文件;默認(rèn)開啟此選項(xiàng)
??Linux文件類型
??-(f):普通文件
??d directory:目錄文件
??l symbolic link:軟(符號(hào))鏈接文件
??b block device:塊設(shè)備文件窄赋;支持以“block”為單位進(jìn)行隨機(jī)訪問
??c character device:字符設(shè)備文件哟冬;支持以“character”為單位進(jìn)行線性訪問
??p pipe:管道文件
??s socket:套接字文件
注:在Linux中,除了目錄文件忆绰、鏈接文件浩峡、塊設(shè)備文件、字符設(shè)備文件错敢、管道文件翰灾、套接字文件其他都是普通文件
??which 顯示命令的完整路徑
???語法:which 外部命令...
??????which 選項(xiàng) 外部命令...
???選項(xiàng):
?????--skip-alias:不顯示命令別名
??whereis 搜索程序名
????查找命令的二進(jìn)制、源代碼和手冊(cè)頁(yè)面文件
???語法:whereis 命令或配置文件
??????whereis [選項(xiàng)] 文件或目錄
???選項(xiàng):
?????-b:只搜索二進(jìn)制文件
?????-m:只搜索man手冊(cè)說明文件
?????-s:只搜索源代碼文件
??whatis 查詢命令功能
????whatis命令是用于查詢一個(gè)命令執(zhí)行什么功能,并將查詢結(jié)果顯示在終端上预侯;使用mkwhatis命令可將當(dāng)前系統(tǒng)上所有的幫助手冊(cè)與之相對(duì)應(yīng)的關(guān)鍵字創(chuàng)建為一個(gè)數(shù)據(jù)庫(kù)
???語法:whatis [要查詢的命令...]
???注意:其執(zhí)行過程是查詢數(shù)據(jù)庫(kù)進(jìn)行的
?????手動(dòng)更新數(shù)據(jù)庫(kù):makewhatis
??file查看文件類型
????file命令用于查看Linux系統(tǒng)上的文件類型致开,支持通配符,file使用的是相對(duì)路徑
???語法:file 文件或目錄...
??????file 選項(xiàng) 文件或目錄...
???選項(xiàng):
?????-b:不顯示文件名
?????-L:直接顯示軟鏈接所指向的文件類別
?????-h:直接顯示軟鏈接的文件類型萎馅,而不是軟鏈接所指向的文件類型
?????-F:使用指定的字符串作為文件名和文件之間的分隔符返回結(jié)果,默認(rèn)為“:”
?????-z:嘗試解讀壓縮文件中的內(nèi)容
?文件管理操作類命令
??cp 復(fù)制“Copy”文件或目錄
????cp命令用于復(fù)制文件或目錄双戳,將需要復(fù)制的文件或目錄(源)復(fù)制到其他目錄中;如果有多個(gè)文件需要復(fù)制糜芳,則目標(biāo)必須是個(gè)目錄飒货,而不能是文件
???cp命令復(fù)制流程:cp-->源-->新建一個(gè)空(目標(biāo))文件-->從源文件抽取數(shù)據(jù)流-->填充到目標(biāo)文件中,直到和源文件一樣-->copy done
??復(fù)制通常指的是復(fù)制文件中的數(shù)據(jù)峭竣,而不是復(fù)制文件的元數(shù)據(jù)(元數(shù)據(jù)可保留)
??如果復(fù)制的源有多個(gè)塘辅,則目標(biāo)必須存在并且是個(gè)目錄,而不能是單個(gè)文件
????cp只能把多個(gè)文件放到一個(gè)目錄中去皆撩,而不能把多個(gè)文件合并成一個(gè)文件
??如果目標(biāo)有多個(gè)且是目錄扣墩,則以最后一個(gè)為準(zhǔn)(目標(biāo)只能是目錄,且不能指明文件名)
??目錄不能覆蓋文件
??如果復(fù)制的是特殊文件 (b,c,s,[l,d])扛吞,則使用“-a”選項(xiàng)
???單源(文件)復(fù)制:cp 源文件 復(fù)制后的文件名
???多源(文件)復(fù)制:cp 源文件… 目標(biāo)目錄
???語法:cp 源文件 復(fù)制后的文件名
??????cp 源文件… 目標(biāo)目錄
??????cp 選項(xiàng)... 源文件或目錄... 目標(biāo)目錄
??????cp [OPTION]... -t DIRECTORY SOURCE...
???cp命令原理
- ??如果源是文件
????單文件復(fù)制
?????語法格式:cp [OPTION]... SOURCE_FILE DEST
??????如果目標(biāo)文件不存在
????????則新建一個(gè)文件呻惕,并將源文件中的內(nèi)容添加到目標(biāo)文件中
????????如果不指明目標(biāo)的文件名,則用原文件名
????????如果指明目標(biāo)的文件名滥比,則使用手動(dòng)指明的文件名
??????如果目標(biāo)是一個(gè)文件(非目錄文件)且存在
????????會(huì)把目標(biāo)文件里的內(nèi)容清空亚脆,把源文件里的內(nèi)容覆蓋到目標(biāo)文件中;此時(shí)應(yīng)使用-i選項(xiàng)
????????復(fù)制同類文件
?????????注意:如果將目錄文件覆蓋了盲泛,則無法恢復(fù)
??????如果目標(biāo)是一個(gè)目錄且存在
????????在目標(biāo)目錄下新建一個(gè)與源文件同名的文件濒持,并將源文件中內(nèi)容添加到(復(fù)制其數(shù)據(jù)流)新文件中
????????則會(huì)復(fù)制源文件到目標(biāo)目錄中,并保留源文件名
????多文件復(fù)制
?????語法格式:cp [OPTION]... SOURCE_FILE... DIRECTORY
??????如果目標(biāo)是一個(gè)文件(非目錄文件)且存在
????????Error寺滚,復(fù)制將無法進(jìn)行
??????如果目標(biāo)是一個(gè)目錄且存在
????????分別復(fù)制每個(gè)文件至目標(biāo)目錄中柑营,并保持原名
??????如果目標(biāo)不存在:復(fù)制將無法進(jìn)行- ??如果源是目錄
????則目標(biāo)必須是一個(gè)目錄文件,使用“-r”選項(xiàng)進(jìn)行復(fù)制目錄文件
????單源復(fù)制
?????語法格式:cp [OPTION]... SOURCE_DIR DIRECTORY
??????如果目標(biāo)目錄不存在
????????將會(huì)創(chuàng)建一個(gè)與源同名的新目錄并復(fù)制源目錄中所有文件到目標(biāo)目錄中
??????如果目標(biāo)存在
????????如果目標(biāo)是文件:會(huì)報(bào)錯(cuò)
????????如果目標(biāo)是目錄:會(huì)把源目錄復(fù)制到目標(biāo)目錄中并新建與源同名的目錄文件并把源的所有內(nèi)容都復(fù)制到目標(biāo)目錄中去
????多源復(fù)制
?????語法格式:cp [OPTION]... SOURCE_DIR… DIRECTORY
??????如果目標(biāo)目錄不存在
????????Error玛迄,復(fù)制將無法進(jìn)行
??????如果目標(biāo)存在
????????如果目標(biāo)是文件:會(huì)報(bào)錯(cuò)
????????如果目標(biāo)是目錄:會(huì)把源目錄中的各個(gè)內(nèi)容復(fù)制到目標(biāo)目錄中并新建與源同名的目錄文件并把源的所有內(nèi)容都復(fù)制到目標(biāo)目錄中去
???選項(xiàng):
?????-i:交互式復(fù)制由境,目標(biāo)文件存在提醒是否將其覆蓋;覆蓋:y蓖议,否則:n
???????建議定義別名:alias cp='cp -i'
?????-f:強(qiáng)制復(fù)制,不提醒目標(biāo)文件是否覆蓋(遇到-i失效)
?????-r,-R DIR:復(fù)制目錄必用此選項(xiàng)讥蟆;遞歸復(fù)制目錄及目錄里的所有內(nèi)容至目標(biāo)位置勒虾;作用和“-R”一樣,cp命令默認(rèn)不支持SRC是目錄
?????-d:復(fù)制符號(hào)鏈接文件本身(僅保留鏈接屬性)瘸彤,而非其指向的源文件
???????默認(rèn)情況下修然,cp命令復(fù)制符號(hào)鏈接文件的時(shí)候,復(fù)制的不是符號(hào)鏈接文件的本身,而是借用了符號(hào)鏈接文件的名字愕宋,復(fù)制了符號(hào)鏈接文件所指向的文件玻靡;如果目標(biāo)存在,則將源符號(hào)鏈接所指向的文件覆蓋至目標(biāo)文件
?????-b:管理員復(fù)制文件時(shí)中贝,會(huì)提醒目標(biāo)文件存在是否覆蓋囤捻,并將目標(biāo)文件進(jìn)行備份;普通用戶復(fù)制文件時(shí)邻寿,會(huì)直接覆蓋掉目標(biāo)文件蝎土,并備份 (-)
?????-p:復(fù)制時(shí)保留源文件的權(quán)限,包括:屬主屬組绣否、時(shí)間戳
?????--preserve[=ATTR_LIST]:保存指定的屬性誊涯,默認(rèn)mode,如果不加“=”則保留默認(rèn)屬性蒜撮,使用“=”可指定保留項(xiàng)
??????ATTR_LIST:
????????mode:權(quán)限
????????ownership:屬主和屬組
????????timestamps: 時(shí)間戳
????????context:安全(上下文)標(biāo)簽
????????links:符號(hào)鏈接本身
????????xattr:擴(kuò)展屬性
????????all:上述所有屬性
?????--no-preserve=ATTR_LIST:不保存指定的屬性
?????-a:歸檔復(fù)制暴构,保留文件的元數(shù)據(jù)屬性;也可復(fù)制目錄段磨,相當(dāng)于“-dR”和 “--preserve=all”選項(xiàng)取逾;備份重要文件時(shí)需用此選項(xiàng)
??????-a選項(xiàng)可以復(fù)制普通文件,目錄文件薇溃,鏈接文件菌赖,塊設(shè)備文件,字符設(shè)備文件沐序,套接字文件
?????-n:不覆蓋現(xiàn)有文件(不通與-i同時(shí)使用)
?????--parents:保留目錄結(jié)構(gòu)
?????--copy-contents:遞歸復(fù)制特殊文件的內(nèi)容
?????--backup[=CONTROL]:為每一個(gè)現(xiàn)有的目標(biāo)文件做一個(gè)備份 (~)
???????CONTROL:
?????-l:對(duì)源文件建立硬鏈接琉用,而不是復(fù)制文件
?????-s:對(duì)源文件建立軟鏈接,而不是復(fù)制文件(類似于ln -s)
?????-L:復(fù)制軟鏈接所指向的源文件策幼,而非軟鏈接本身邑时;默認(rèn)
?????-u:僅在源文件比目標(biāo)文件新或缺少目標(biāo)文件時(shí)才復(fù)制
?????-S<STRING>:在備份文件的尾部添加一個(gè)字串;需要覆蓋時(shí)特姐,才生效
?????--attributes-only:只會(huì)復(fù)制文件名及其屬性晶丘,不會(huì)復(fù)制任何數(shù)據(jù)
?????--remove-destination:如果 cp 命令在目標(biāo)目錄下發(fā)現(xiàn)同名文件, cp 命令會(huì)先刪除目標(biāo)文件唐含,然后再?gòu)?fù)制一份新的
?????-t:可以把源放在后邊浅浮,把目標(biāo)目錄放在前面
?????-T:把目標(biāo)當(dāng)做一個(gè)正常文件
?????-v:顯示詳細(xì)信息
?????-Z:將目標(biāo)文件的SELinux安全上下文設(shè)置為默認(rèn)類型
??mv 移動(dòng)文件“move” or 重命名文件
????mv命令用于移動(dòng)文件或重命名文件,在相同目錄下重命名文件捷枯,在不同目錄下移動(dòng)文件
???語法:mv 源文件或目錄... 目標(biāo)目錄
??????mv 選項(xiàng)... 源... 目標(biāo)
??????mv 原文件名 重命名后的文件名
??????mv 多個(gè)源文件或目錄 目標(biāo)目錄
???mv命令執(zhí)行流程:mv源-->新建一個(gè)空(目標(biāo))文件-->從源文件抽取數(shù)據(jù)流-->填充到目標(biāo)文件中-->刪除源文件-->mory done
????如果mv的源有多個(gè)滚秩,則目標(biāo)必須存在并且是個(gè)目錄,而不能是單個(gè)文件
???選項(xiàng):
?????-i:交互式淮捆,提醒目標(biāo)文件存在是否覆蓋郁油;覆蓋:y本股,否則:n
?????-f:強(qiáng)制,不提醒目標(biāo)文件是否覆蓋(遇到-i失效)
?????-b:覆蓋目標(biāo)桐腌,并備份
?????-n:不會(huì)覆蓋現(xiàn)有文件
?????-u:當(dāng)源文件比目標(biāo)文件新或者目標(biāo)文件不存在時(shí)拄显,才移動(dòng)文件
?????-t:可以把源放在后邊,把目標(biāo)目錄放在前面
?????-S<STRING>:在備份文件的尾部添加一個(gè)字串案站;需要覆蓋時(shí)躬审,才生效
?????-T:把目標(biāo)當(dāng)做一個(gè)正常文件
?????-v:顯示執(zhí)行過程
?????-Z:將目標(biāo)文件的SELinux安全上下文設(shè)置為默認(rèn)類型
- ??如果源是單個(gè)文件
????如果目標(biāo)不存在
??????操作過程:在目標(biāo)目錄下創(chuàng)建一個(gè)自己指定的名字作為新文件名,把源文件里的內(nèi)容添加到目標(biāo)文件中并刪除源文件
????如果目標(biāo)存在
????如果目標(biāo)是文件
??????操作過程:把源文件里的內(nèi)容覆蓋到目標(biāo)文件中嚼吞,并刪除源文件
????如果目標(biāo)是目錄
??????操作過程:在目標(biāo)目錄中創(chuàng)建一個(gè)與源文件同名的文件盒件,并刪除源文件- ??如果源是多個(gè)文件:目錄必須存在,而且必須是目錄
????如果源是目錄:mv命令就會(huì)把目錄和目錄下的所有文件移動(dòng)到指定目錄中(mv命令不區(qū)分源是文件或目錄)
???注意:移動(dòng)文件只影響文件名舱禽,不會(huì)影響inode編號(hào)和時(shí)間戳
??rm 刪除“remove”文件或目錄
????rm命令用于刪除指定的文件或目錄炒刁,rm命令默認(rèn)是刪除文件的,刪除目錄必須使用“-r”
???語法:rm 文件或目錄 ...
??????rm 選項(xiàng) ... 文件或目錄 ...
??????rm [OPTION]... FILE...
???選項(xiàng):
?????-i:交互式刪除文件誊稚,提示是否刪除铸抑;確定:y镀梭,取消:n
?????-f:強(qiáng)制刪除,不提示
?????-I:在刪除超過三個(gè)文件或者遞歸刪除前要求確認(rèn)
?????-d:只刪除空目錄;類似于“rmdir”命令
?????-r:刪除目錄必用此選項(xiàng)敢会,遞歸刪除指定目錄和目錄里的內(nèi)容
?????--no-preserve-root:跳過安全模式
?????-v:顯示刪除過程
????注意:所有不用的文件建議不要直接刪除蝙叛,而是移動(dòng)至某個(gè)專用目錄(模擬回收站)
???使用rm時(shí)需注意
????不要執(zhí)行:rm –rf /[*]
????執(zhí)行此條命令撮弧,系統(tǒng)會(huì)從“/”往下刪饲做,也就是說,把系統(tǒng)中所有的文件和目錄都刪除狼电;在CentOS5和CentOS5之前的版本中蜒灰,執(zhí)行此條命令會(huì)把系統(tǒng)上的文件和目錄全部都刪除,在CentOS6中肩碟,新加了“--preserve-root”選項(xiàng)强窖,該選是不刪除“/”的,CentOS6默認(rèn)支持該選項(xiàng)
2削祈、bash的工作特性之命令執(zhí)行狀態(tài)返回值和命令行展開所涉及的內(nèi)容及其示例演示翅溺。
命令的執(zhí)行狀態(tài)**
???**命令執(zhí)行的結(jié)果
命令執(zhí)行的結(jié)果
命令執(zhí)行后的狀態(tài)結(jié)果
命令執(zhí)行后的狀態(tài)結(jié)果
命令執(zhí)行完成之后,其狀態(tài)返回值保存于bash的特殊變量“?”保存上一條命令的執(zhí)行的狀態(tài)結(jié)果髓抑,用echo $?可以判斷上一條命令是否執(zhí)行成功
命令執(zhí)行后的狀態(tài)結(jié)果返回值
0:表示執(zhí)行成功
1~255:表示執(zhí)行失敗
命令行展開
~:展開為用戶的家目錄
~用戶名:展開為指定用戶的家目錄
{}:可承載一個(gè)以逗號(hào)分割的列表咙崎,并將其展開為多個(gè)路徑
3、請(qǐng)使用命令行展開功能來完成以下練習(xí):
??(1)吨拍、創(chuàng)建/tmp目錄下的:a_c, a_d, b_c, b_d
??mkdir -v /tmp/{a,b}_{c,d}
??(2)叙凡、創(chuàng)建/tmp/mylinux目錄下的
mkdir -pv /tmp/mylinux/{bin,root/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
4、文件的元數(shù)據(jù)信息有哪些密末,分別表示什么含義握爷,如何查看?如何修改文件的時(shí)間戳信息严里。
??文件的時(shí)間戳(參考上文)
??touch命令(參考上文)
??文件元數(shù)據(jù)(參考上文)
??stat命令(參考上文)
5新啼、如何定義一個(gè)命令的別名,如何在命令中引用另一個(gè)命令的執(zhí)行結(jié)果刹碾?
??alias 給命令設(shè)置別名
????alias是shell內(nèi)部命令燥撞,用于查看當(dāng)前shell進(jìn)程中所有的命令別名和設(shè)置系統(tǒng)命令中的別名,如果原命令有多個(gè)參數(shù)空格隔開的話迷帜,就用’’括起來物舒,如果執(zhí)行“alias”什么都不加,將會(huì)查看系統(tǒng)中已經(jīng)設(shè)置的命令別名戏锹;alias命令設(shè)置的別名僅對(duì)當(dāng)前shell進(jìn)程有效冠胯;如果想永久有效,則定義到配置文件中
???語法:alias
??????alias 別名=’原命令’
???僅對(duì)當(dāng)前shell有效
?????時(shí)間限定:僅對(duì)當(dāng)前shell有效锦针,shell進(jìn)程終止就失效
?????范圍限定:僅對(duì)當(dāng)前shell有效荠察,對(duì)其他shell無效
?????注:任何在進(jìn)程中定義的東西,由進(jìn)程終止而終止
???讓別名永久生效
?????~/.bashrc:寫入此配置文件中奈搜,對(duì)當(dāng)前用戶生效
?????/etc/bashrc:寫入此配置文件中悉盆,對(duì)所有用戶生效
????注意:別名可以與原名相同,此時(shí)原名被隱藏馋吗;此時(shí)如果要運(yùn)行原命令焕盟,則使用\COMMAND
??撤銷命令別名
????unalias是shell內(nèi)部命令,用于撤銷用戶定義的別名
???語法:unalias 命令別名
??????unalias 選項(xiàng)
???選項(xiàng):
?????-a:撤銷所有別名
??引用命令的執(zhí)行結(jié)果
????狀態(tài)結(jié)果定義于命令的源代碼中宏粤,根據(jù)命令及其功能不同脚翘,命令執(zhí)行的狀態(tài)結(jié)果(返回值)各不相同
???引用命令執(zhí)行結(jié)果
6、顯示/var目錄下所有以l開頭商架,以一個(gè)小寫字母結(jié)尾堰怨,且中間至少出現(xiàn)一位數(shù)字(可以有其它字符)的文件或目錄。
??ls -d /var/l[[:digit:]][[:lower:]]
7蛇摸、顯示/etc目錄下备图,以任意一個(gè)數(shù)字開頭,且以非數(shù)字結(jié)尾的文件或目錄赶袄。
??ls -d /etc/[[:digit:]]*[^[:digit:]]
8揽涮、顯示/etc目錄下,以非字母開頭饿肺,后面跟了一個(gè)字母以及其它任意長(zhǎng)度任意字符的文件或目錄蒋困。
??ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創(chuàng)建以tfile開頭敬辣,后跟當(dāng)前日期和時(shí)間的文件雪标,文件名形如:tfile-2016-05-27-09-32-22零院。
??touch /tmp/tfile-$(date +%F-%H-%M-%S)
10、復(fù)制/etc目錄下所有以p開頭村刨,以非數(shù)字結(jié)尾的文件或目錄到/tmp/myzdf1目錄中告抄。
??mkdir /tmp/myzdf1 ; cp -r /etc/p*[^[:digit:]] /tmp/myzdf1
11、復(fù)制/etc目錄下所有以.d結(jié)尾的文件或目錄至/tmp/myzdf2目錄中嵌牺。
??mkdir /tmp/myzdf2 ; cp -r /etc/*.d /tmp/myzdf2
12打洼、復(fù)制/etc/目錄下所有以l或m或n開頭,以.conf結(jié)尾的文件至/tmp/myzdf3目錄中逆粹。
??mkdir /tmp/myzdf3 ; cp /etc/[lmn]*conf /tmp/myzdf3