一、Linux上文件管理命令
1.文件管理類命令
(1)mkdir:創建目錄
-p:自動按需創建目錄
-v:顯示詳細過程
(2)rmdir(remove empty directory):刪除空目錄
-p:刪除某目錄後,如果其父目錄爲空,則一併刪除之
-v:顯示詳細過程
2.文件查看類命令
(1)分屏查看命令:
more:more FILE 翻屏到文件尾部後自動退出
less:less FILE
head:head [OPTIONS] FILE
tail:tail [OPTIONS] FILE
stat:查詢文件的詳細信息
3.文件管理工具:
(1)cp:copy 源文件 目標文件
單源複製:cp [OPTION]. . . [-T] SOURCE DEST
如果DEST不存在,則事先創建此文件,並複製源文件的數據流至DEST中;如果DEST存在(DEST是非目錄文件則覆蓋目標文件,DEST是目錄文件則先在DEST目錄下創建一個與源文件同名的文件並複製其數據流。)
多源複製:cp [OPTION]. . . SOURCE. . . DIRECTORY
cp [OPTION]. . . -t DIRECTORY SOURCE. . .
如果DEST不存在,錯誤;如果DEST存在(DEST是非目錄文件則錯誤;DEST是目錄文件則分別複製每個文件到目標目錄中並保持原名。)
常用選項: -i:交互式複製,覆蓋之前提醒用戶確認
-f:強制複製
-r,-R:遞歸複製
-d:複製符號鏈接本身
-a:-dR 用於實現歸檔
(2)mv命令:mv [OPTION]. . . [-T] SOURCE DEST
mv [OPTION]. . . SOURCE. . . DIRECTORY
mv [OPTION]. . . -t DIRECTORY SOURCE. . .
常用選項: -i:交互式複製,覆蓋之前提醒用戶確認
-f:強制複製
(3)rm命令:remove [OPTION]. . .FILE. . .
常用選項: -i:交互式複製,覆蓋之前提醒用戶確認
-f:強制複製
-r,-R:遞歸複製
二、bash的工作特性
命令行展開:
~:自動展開爲用戶的家目錄,或指定的用戶的家目錄
{}:可承載一個以逗號分隔的路徑列表,並能夠將其展開爲多個路徑。例如:/tmp/{a,b}相當於/tmp/a /tmp/b
命令執行狀態返回值:
即命令執行的狀態結果:bash通過狀態返回值來輸出此結果(成功:0;失敗:1-255),
命令執行完成後,其狀態返回值保存於bash的特殊變量$?中,
命令正常執行時,有的還會有命令返回值,
根據命令及其功能不同,結果各不相同
引用命令的執行結果:$(COMMAND)或`COMMAND`
三、使用命令行展開功能完成
(1)mkdir -v /tmp{a,b}_{c,d}
(2)mkdir -pv /tmp/mylinux{bin,dev,lib64,proc,sbin,sys,boot/grub,etc{rc,d/init.d,sysconfig/network-scrips},lib/modules}
四、文件的元數據和修改文件時間戳
1.文件的兩類數據
元數據:文件名、大小、類型、權限、屬主屬組、文件的時間戳(非文件的組成部分)...
數據:文件裏的內容(文件的組成部分)
2.修改文件時間戳:touch 命令
touch [OPTION]. . . FILE. ..
-c:指定的文件路徑不存在時不予創建
-a:僅修改access times
-m:僅修改modify times
五、定義命令別名和引用另一個命令的執行結果
1.定義命令別名
# alias NAME=`COMMAND`(僅對當前shell進程有效)
2.引用命令執行結果
強引用:' '
弱引用:" "
命令引用:` `
六、練習
(6)顯示/var目錄下所有以1開頭,以一個小寫字母結尾且中間至少出現一個數字(可以有其他字符)的文件或目錄
ls -d /var/1?[[ : lower : ]]
(7)顯示/etc目錄下,以任意一個數字開頭且以非數字結尾的文件或目錄
ls -d /etc/[0-9]*[^0-9]
(8)顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其他任意長度任意字符的文件或目錄
ls -d /etc/[^a-z][a-z]*
(9)在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09:32-22
ls -d /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
(10)複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
cp -r /etc/p*[^0-9] /tmp/mytest1
(11)複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
cp -r /etc/*.d/tmp/mytest2
(12)複製/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
cp -r /etc/{l,m,n}*.conf/tmp/mytest3