- Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示
- bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
- 文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
- 如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
- 顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
- 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
- 顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
- 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
- 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
- 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
- 復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
Linux上的文件管理類命令
- 源文件–>目標文件
- 單源復制:cp [OPTION]… [-T] SOURCE DEST
- 多源復制:cp [OPTION]… SOURCE… DIRECTORY
- 多源復制:cp [OPTION]… -t DIRECTORY SOURCE…
- 如果DEST不存在,則事先創建此文件,并復制源文件的數據流填充到目標目錄中
- 如果DEST不存在,如果DEST是飛目錄文件,則覆蓋目標文件
- 如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流
- 多源復制:
- 如果DEST不存在:錯誤
- 如果DEST存在:
- 如果DEST是非目錄文件:錯誤
- 如果DEST是目錄文件:分別復制每一個文件至目標目錄中,并保持原名
- -i:交互式復制,覆蓋之前提醒用戶確認
- -f:強制覆蓋目標文件
- -r/-R:遞歸復制目錄,復制目錄及目錄中的內容到目標位置
- -d:復制符號鏈接文件本身,而非其志祥的源文件
- -a:遞歸復制目錄,=dr,用語實現歸檔
- –preserv=
- mode:權限
- owership:屬主和屬組
- timestamps:時間戳
- context:安全標簽
- xattr:擴展屬性
- links:符號連接
- all:上述所有屬性
- mv [OPTION]… [-T] SOURCE DEST
- mv [OPTION]… SOURCE… DIRECTORY
- mv [OPTION]… -t DIRECTORY SOURCE…
- -i:交互式復制
- -f:強制覆蓋
- rm [OPTION]… FILE…
- -i:交互式刪除,提醒是否刪除
- -r:遞歸刪除目錄,并交互式刪除
- -f:強制刪除
命令執行狀態返回值
- 成功:0
- 失敗:非0值(1~255)
- 命令執行完成之后其狀態返回值保存于bash的特殊變量$?中,可通過echo $?查看狀態,但是不能隔命令,必須執行完后第一時間查詢
- 命令正常執行時,有的還有命令返回值:
- 根據命令及其功能不能同,結果各不相同
- 引用命令的執行結果:
- $(COMMAND)或反引號 `COMMAND`
例如以當前時間作為目錄名稱創建名稱
- ~]# mkdir $(date +%T-%H-%M)
命令行展開
- ~:自動展開為用戶的家目錄?;蛑付ǖ挠脩舻募夷夸?/li>
- {}:可以承載一個以逗號分割的路徑列表,并能夠將其展開為多個路徑
創建/tmp目錄下的:a_c,a_d,b_c,b_d
- ~]#mkdir? /tmp/{a,b}_{c,d}
創建/tmp/mylinux目錄結構
- ~]#mkdir -p /tmp/mylinux/{bin,boot/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}}
- 元數據:metadata
- access time:最近訪問:2017-12-12 12:21:38.432021736 +0800
- modify time:最近更改:2017-12-12 12:21:38.432021736 +0800
- 數據:data
查看文件元數據
stat FILENAME
修改時間戳的方式
- -a:僅修改access time
- -m:僅修改 modify time
- -t:修改時間
- YYMMDDhhmm.ss
- ~]# alias NAME=’COMMAND’
- 例如想在/tmp下創建一個以當前系統時間為名稱的目錄
- ~]#mkdir /tmp/$(date +%T-%H-%M)
- ~]#ls -d /var/l*[0-9]*[[:lower:]]
- ~]#ls -d /etc/[0-9]*[^0-9]
- ~]#ls -d /etc/[^a-z][a-z]*
- ?~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
- ?~]#?cp -R /etc/p*[^0-9] /tmp/mytest1 $(mkdir -p /tmp/mytest1)
- ~]# cp -R /etc/*.d /tmp/mytest2 $(mkdir -p /tmp/mytest2)
- ?~]# cp /etc/[l-n]*.conf /tmp/mytest3 $(mkdir -p /tmp/mytest3)
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89966
很好,每一題都很用心。將題中涉及的知識點在日常運維中多加應用,爭取盡快做到得心應手。