1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件管理類命令有:cp, mv, rm
cp:
功能:copy,復制
語法:cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
cp SRC DEST
SRC是文件:
如果目標不存在:新建DEST,并將SRC中內容填充至DEST中;
如果DEST是文件:將SRC中的內容覆蓋至DEST中;
此時建議為cp命令使用-i選項;
如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中;
cp SRC… DEST
SRC…:多個文件
DEST必須存在,且為目錄,其它情形均會出錯;
SRC是目錄:
此時使用選項:-r
如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中;
如果DEST存在:
如果DEST是文件:報錯
常用選項:
-i:交互式
-r, -R: 遞歸復制目錄及內部的所有內容;
-a: 歸檔,相當于-dR –preserv=all
-d:–no-dereference –preserv=links
–preserv[=ATTR_LIST]
-p: –preserv=mode,ownership,timestamp
-v: –verbose 顯示詳細信息
-f: –force
示例:
復制file1到/tmp下并重命名為file2:
#cp file1 /tmp/file2
備份當前目錄的所有文件到/backup下:
#cp -a . /backup/
復制目錄的內容到另一個目錄:
#cp -r SRC_DIR DST_DIR
mv:
功能:move,移動
用法:mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-i: 在執行時會提示
-f: 強制執行
-t:移動所有SOURCE 到 DIRECTORY
示例:
將當前目錄的多個文件移動到/tmp下:
#mv -t /tmp test1 test2 ...
修改文件名稱:
#mv 1.txt 2.txt
rm:
功能:remove,刪除
用法:rm [OPTION]… FILE…
常用選項:
-i: 交互式
-f: 強制刪除
-r: 遞歸
示例:
刪除/tmp下的.log文件:
#rm -rf /tmp/*.log
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
特殊變量$?保存上一條命令執行狀態結果
可以這么查看
#echo $?
返回結果: 0:表示成功
1-255:表示失敗
命令行展開所涉及的內容:
~:展開為用戶的主目錄
~USERNAME:展開為指定用戶的主目錄
{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
如下示例:
#touch /tmp/{a,b,c}
/tmp/a /tmp/b /tmp/c
#mkdir /tmp/{hello,world}/d
/tmp/hello/d /tmp/world/d
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
#mkdir /tmp/{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
#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}}
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件的元數據信息是用來描述一個文件的特征的系統數據,包括文件大小,inode數,連接數,訪問權限,UID、GID以及三個時間戳,可以用stat命令來進行查看。
文件有三個時間戳,分別是:
access time:訪問時間,atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
可以用touch命令進行修改文件的時間戳信息。
touch:
語法:touch [OPTION]… FILE…
選項:-a: 只改變 atime
-m: 只改變 mtime
-t:STAMP: [[CC]YY]MMDDhhmm[.ss] 代替當前系統時間
-c:如果文件不存在,則不創建
示例:
修改文件的訪問時間為當前系統的時間
#touch -a FileName
修改文件的時間為指定時間戳
#touch -t 201607071950.33 FileName
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
可以用alias定義一個命令的別名, 如 alias NAME=‘VALUE’
可以用反引號括起想要獲取的命令的執行結果,如 FILES=`ls -l`
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
#ls -d /var/l*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
#ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
#ls -d /tmp/[^a-zA-Z][a-zA-Z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
#touch /tmp/tfile-`date +"%F-%H-%M-%S"`
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
#cp -a /etc/p*[^0-9] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
#cp -a /etc/*.d /tmp/mytest2/
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
#cp -a /etc/[lmn]*.conf /tmp/mytest3/
原創文章,作者:π,如若轉載,請注明出處:http://www.www58058.com/23196
寫的很好,排版也很棒,加油