N26-第二週作業
1、Linux上的檔案管理類命令都有哪些,其常用的使用方法及其相關示例演示。
Linux下涉及到目錄管理命令,主要有 mkdir,rmdir
Linux下經常使用的檔案管理命令,主要有cp,mv,rm
cp
這個命令的作用是可以複製檔案或目錄,且支援多個檔案同時複製。
語法格式如下:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE..
單源複製:cp [OPTION]…SOURCE DEST
如果dest檔案不存在則建立檔案,並複製原始檔資料流到DEST檔案中(這裡源,目的都是檔案)
如果dest檔案存在,則複製原始檔資料覆蓋目標檔案(這裡源,目標都是檔案)
如果dest是一個目錄,則在dest目錄中建立相同的檔案和內容(這裡源是檔案,目的是目錄)
如果源是目錄,需要加選項-t,這這時候dest必須是目錄,將其源目錄複製到目標目錄下!
多源複製:cp [OPTION]… SOURCE… DIRECTORY
多源複製的目標必須是目錄
可以複製多個檔案,到同一個目錄下。
常用選項option:
-i:覆蓋之前提醒使用者確認。cp的別名就是cp -i
-f:強制覆蓋目標檔案
-r:遞迴複製目錄,複製目錄和目錄中的內容到目標位置
-d:複製一個符號連結本身,不會其指向的真正的原始檔。
-a: 表示連原始檔原始檔屬性都複製過去
mv
mv和cp使用方式基本一樣,只是mv命令完成cp操作之後,會把原來的source檔案刪除。
注意:mv一個目錄時不需要加-r選項即可實現遞迴移動
rm
rm命令可以刪除一個目錄中的一個或多個檔案或目錄,也可以將某個目錄及其下屬的所有檔案及其子目錄均刪除掉。對於連結檔案,只是刪除整個連結檔案,而原有檔案保持不變。注意:使用rm命令要格外小心。因為一旦刪除了一個檔案,就無法再恢復它。所以,在刪除檔案之前,最好再看一下檔案的內容,確定是否真要刪除。
2、bash的工作特性之命令執行狀態返回值和命令列展開所涉及的內容及其示例演示。
狀態返回值
bash通過狀態返回值來輸入命令的執行結果
成功:0
失敗:1-255
命令執行完成後,狀態返回值儲存在bash的特殊變數$?中
命令列展開
~:自動展開為使用者的家目錄,或指定使用者的家目錄
{}:可承載一個逗號分隔的路徑列表,並能將其展開為多個路徑
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 –pv/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、檔案的元資料資訊有哪些,分別表示什麼含義,如何檢視?如何修改檔案的時間戳資訊。
元資料(Metadata),又稱中介資料、中繼資料,為描述資料的資料(data about data),主要是描述資料屬性(property)的資訊,用來支援如指示儲存位置、歷史資料、資源查詢、檔案記錄等功能。元資料算是一種電子式目錄,為了達到編制目錄的目的,必須在描述並收藏資料的內容或特色,進而達成協助資料檢索的目的,元資料就是資料的資料。
Linux中指檔案的屬性、大小、建立時間、訪問時間、屬主屬組等資訊。
使用stat可以檢視以下三個時間戳:
Access time: 訪問時間,簡寫為atime,讀取檔案內容
Modify time: 修改時間,簡寫為mtime,改變檔案內容(資料)
Change time: 改動時間,簡寫為ctime,元資料發生改變
使用touch命令便可以更改檔案的時間戳資訊
引數如下:
-a 只更改訪問時間
-c 不建立任何檔案
-m 只更改修改時間
-t 修改時間戳為指定時間 [[CC]YY]MMDDhhmm [.SS]
5、 如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
可使用alias命令來定義命令的別名
如要在命令中引用另外一個命令的執行結果可以有以下兩種方式
①管道命令 |
COMMAND1 | COMMAND2 | COMMAND3 |...
②結果引用
COMMAND2 $( COMMAND1)
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字元)的檔案或目錄。
ls –d /var/l*[:digit:]*[:lower:]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的檔案或目錄。
ls –d /etc/[:digit:]*[^[:digit:]]或者 ls –d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字元的檔案或目錄。
ls –d /etc/ [^[:alpha:]] [[:alpha:]]* 或者 ls –d /etc/[^a-z][a-z]*
9、在/tmp目錄下建立以tfile開頭,後跟當前日期和時間的檔案,檔名形如:tfile-2016-05-27-09-32-22。
建立檔案:touch /tmp/tfile-$(date+%Y-%m-%d-%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/[l,m,n]*.conf /tmp/mytest3
轉載於:https://blog.51cto.com/liuyaojia/1899115