Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件管理工具:cp,mv,rm
cp命令:copy
源文件:目標文件
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
單源復制:如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中
如果DEST存在:
如果DEST是非目錄文件,則覆蓋目標文件
如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流至目標文件;
多源目錄:如果DEST不存在,錯誤
如果DEST存在:
如果DEST是非目錄文件,錯誤
如果DEST是目錄文件;分別復制每個文件至目標目錄中,并保存原名;
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r:遞歸復制目錄
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all,archive,用于實現歸檔
–preserv=
mode:權限
ownership:屬主和屬組
timestamp:時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
mv命令:跟cp差不多,只不過是mv把源文件刪除了
-f:force,強制刪除
-i:交互式
rm命令:remove,刪除文件,還可以刪除目錄
-i:interacive
-f:force,強制刪除
-r:遞歸刪除
刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf /
注意:所有不用的文件不要直接刪除,而是移動至某個專用目錄:(模擬回收站)
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash的基礎特性之:命令行展開
~:自動展開為用戶的家目錄,或指定的家目錄;
{}:可承載一個以逗號分割的路徑列表,并能夠將其展開為多個路徑;
例如:/tmp/{a,b}相當于/tmp/a /tmp/b
tree命令:
tree [options] [direcrory]
-L level:指定要顯示的層級
bash的基礎特性:命令的執行狀態結果
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果;
成功:0
失敗:1-255
命令執行完成之后,其狀態返回值保存在于bash的特殊變量$?
命令正常執行時,有的還會有命令返回值;
根據命令及其功能不同,結構各不相同;
3.請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
# mkdir {a,b}_{c,d}(2)、創建/tmp/mylinux目錄下的:
# mkdir -p /tmp/mylinux1/{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}}
4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
1)文件的元數據信息及查看
文件的數據分兩種:一種元數據,既屬性數據;一種就是數據本身;可使用stat命令查看文件的元數據:
例如:
]# stat /etc/passwd
文件:”/etc/passwd”
大?。?483 塊:8 IO 塊:4096 普通文件
設備:fd00h/64768d Inode:136755684 硬鏈接:1
權限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)
環境:systemu:objectr:passwdfilet:s0
最近訪問:2016-09-22 22:07:14.897045766 +0800
最近更改:2016-09-20 18:10:23.223086880 +0800
最近改動:2016-09-20 18:10:23.227086888 +0800
創建時間:-
其中:
file:文件名;
size:文件大小
block:文件占了多少個數據塊
IO Block:文件所占數據塊的塊大小
Device:硬件,既說明該文件在硬盤的那個柱面
Inode:節點號
links:鏈接
Access(第一個):權限
Uid:該文件所屬的屬主
Gid:該文件所屬的屬組
context:安全上下文
Access(第二個):文件上一次的訪問時間
Modify:文件上一次修改的時間
Change:文件上一次屬性更改的時間
2)修改文件的時間戳信息:
可以使用touch命令更改文件的時間戳:
語法:
touch [OPTION]… FILE…
常用選項:
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t:使用指定的日期時間,而非現在的時間;[[CC]YY]MMDDhhmm[.ss];
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
標簽:
在我們學習linux命令的時候經常會遇到一些很長的命令,更痛苦的是有的長命令還要經常重復行的輸入,雖然shell中有了前兩個功能可以給我們一些幫助,但是如果你有實際體驗的話,你還是會覺的比較麻煩。其實shell可以讓我們使用一些比較簡單或者有意義的單詞來替代一個長命令,這就是shell的命令別名功能。
在shell里定義命令別名的命令是alias,alias命令的格式如下:
alias[-p][name[=value]…]
參數:
-p(或者是不帶任何參數):以‘alias NAME=VALUE‘ 的形式打印所有別名表中的別名;
alias name=valuename即是對命令value的別名,定義別名后我們只要在終端中輸入name就可以獲得和輸入value命令同樣的結果。
舉個例子,比如說我現在沒有流量上網了,我想借助于代理服務器來上網,這樣我每次就要輸入“ssh-fND localhost:12345”這么長的命令,這個命令我只有每次開機上網的時候才會使用一下它,但是每次輸入這么長的命令是一件很痛苦的事,借助于shell的別名命名功能,在終端中輸入“aliasproxy=‘ssh -fND localhost:12345‘”,以后上網只要輸入proxy別名命令就可以了。
取消一個別名也很簡單,只要執行命令:“unalias命名別名”就可以了。還拿剛才的例子來說事,我現在流量足夠用了,我不再需要使用代理來上網來,這時候留著proxy別名也就沒有任何意義了。可以使用“unaliasproxy”命令取消別名。
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
ls -ld /var/l*[[:digit:]]*[[:lower:]]
7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls /etc/[0-9]*[^0-9]
8.顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
mkdir /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
mkdir /tmp/mytest1;cp -r /etc//p*[^[:digit:]] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
mkdir /tmp/mytest2 ; cp -r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
mkdir /tmp/mytest3 ; cp /etc/{l,m,n}*.conf /tmp/mytest3
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92152