文件管理命令:
?cp命令:針對文件內容進行復制,元數據不會復制到目標文件或目錄中
單源復制:cp [OPTION] source destination
- 若目標文件不存在,則先創建文件在copy
- 若目標是非目錄文件(目標文件非空),則覆蓋目標文件
- 若目標是目錄文件,則在目標目錄中創建文件,再復制數據到該文件中
- 若源是目錄的話,默認復制不會成功,需要附帶選項(-r)
示例:? cp /etc/fstab /tmp/fstab
多源復制:多個文件復制
- 若目標文件不存在,則不能復制
- 若目標不是目錄文件,則不能復制
- 若目標為目錄,則在目錄中創建這幾個文件,并復制相應的數據進文件中
? 常見選項:
- -i:interactive,進行復制操作之前會提示用戶
- -f:強制覆蓋目標文件
- -r:遞歸復制目錄(子目錄也會復制)
- -d:只復制鏈接本身,鏈接所指向的目標文件不復制,preserve=links
- -a:復制鏈接本身及所指向的目標文件,包括元數據,presereve=all
mv命令:復制文件至目標文件,然后刪除原文件
? 規則:mv [OPTION] source DEST
? 示例:mv /tmp/zabbix_server.log /var/log/
? 常見選項:
- -i:interactive
- -f:強制移動force
rm命令:刪除文件
? 規則:rm [OPTION] FILE
? 示例:rm –rf /tmp/123/1.txt
? 選項:
- -i:interactive
- -f:強制刪除
- -r:recursive,遞歸刪除)(此選項慎用)
cd命令:切換目錄change directory
? 規則:cd /some/dirtectory
? 示例:cd /etc/inittab
pwd命令:顯示當前目錄,內建命令,可直接使用
?
ls命令:顯示指定目錄或文件的內容
? 規則:ls [OPTION] /file/or/directory
? 示例:ls –l /etc/init.d
命令執行狀態返回值:
命令執行結果只有兩種情況:
成功:返回值一定為0
失敗:返回值1-255都有可能
bash使用特殊變量$?來存放最近一次命令執行的返回狀態值,可使用echo $?來得到命令的執行結果狀態
命令行展開:
~展開為root的家目錄
~USERNAME為用戶USERNAME的家目錄
{ }可以承載逗號分隔的列表,并將其展開為多個路徑
示例:touch /{x,y}/{a,b}相當于創建了四個文件/x/a,/x/b,/y/a,/y/b
(1)創建/tmp目錄下的:a_c, a_d, b_c, b_d
touch {a,b}-{c,d}
(2)創建/tmp/mylinux目錄下的:
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
touch /tmp/myselinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,prooc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
文件的元數據:
? ? ? 元數據分類:
- mode:權限
- ownership:屬主屬組
- timestamp:時間戳
- links:符號連接
- xattr:擴展屬性
- context:安全標簽
- 文件大小
??????元數據查看:
? stat命令可以查看文件的元數據
規則:stat [OPTION] [FILE]
示例:stat –f /etc/fstab(顯示文件所在文件系統的信息而不是文件信息)
? ? ??元數據時間戳修改:
? touch命令可以修改時間戳
?規則:touch [OPTION] FILE
?示例:touch –a /tmp/log/zabbix_server.log(修改文件的存取時間)
? 選項:
- -a:只更改存取時間
- -d:使用指定日期時間
- -m:更改修改時間(modify time)
- -r:將文件的時間更改為參考值(-reference=FILE)
- -t:使用指定時間
bash特性之命令別名及命令結果引用:?
? ?命令別名的定義:
命令的定義使用alias命令(只在當前shell進程有效)
? 規則:alias string=’COMMAND [OPTION] [argument]’
? 示例:alias rm=’mv -i’
? ?命令結果引用:
- $(name):將括號內運行的內容作為變量引用
- `name`:反引號,與$(name)的用法相似
- 管道:具有一定的邏輯結構,上一個命令的運行結果作為參數傳遞到下一個命令
bash特性之glob文件匹配:
(1)顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
ls –ld /var/l*[[:digit:]]lower:]]
(2)顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls –ld /etc/[[:digit:]]*[^[:digit:]]
(3)顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls –ld /etc/[^[:alpha:]][[:alpha:]]*
(4)在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch /tmp/tfile-$(date +%Y-%m-%d-%H-%m-%S)
(5)復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
cp –R /etc/p*[^[:digit:]] /tmp/test1
(6)復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
cp -R /etc/*.d /tmp/test2
(7)復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
cp –R /etc/{l,m,n}*.conf /tmp/mytest3
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91156
總結的比較全,最后的例子可以多想幾種方式來處理~