4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息?
元數據定義: 數據(Metadata),又稱中介數據、中繼數據,為描述 數據的數據(data about data),主要是描述數據屬性(property)的信息,用來支持如指示存儲位置、歷史數據、資源查找、文件記錄等功能。 可用命令stat查看文件的元數據 stat: 功能說明:顯示inode內容。 語 法:stat FILE
-bash-4.1# stat a.c File: a.cSize: 41 Blocks: 8 IO Block: 4096 regular fileDevice: fh/15d Inode: 1808648 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-11-09 23:38:06.000000000Modify: 2016-11-09 23:38:05.000000000Change: 2016-11-09 23:38:05.000000000
修改文件時間戳信息 命令:touch touch命令一般用來修改文件的時間,或者新建一個不存在的文件. 語法如下: touch [-acm][-r ref_file(參照文件)|-t time(時間值)] file(文件名) 參數說明: -a 修改文件 file 的存取時間. -c 不創建文件 file. -m 修改文件 file 的修改時間 -r ref_file 將參照文件 ref_file 相應的時間戳記的數值作為指定文件 file 時間戳記的新值. -t time 使用指定的時間值 time 作為指定文件 file 相應時間戳記的新值. 例子: touch a.txt 更新a.txt的存取和修改時間
-bash-4.1# touch a.txt-bash-4.1# stat a.txt File: a.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: fh/15d Inode: 1847885 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-11-10 00:08:44.000000000Modify: 2016-11-10 00:08:44.000000000Change: 2016-11-10 00:08:44.000000000
touch -c a.txt 不創建文件
-bash-4.1# touch -c b.txt-bash-4.1# lsa.c a.txt
touch -r b.txt a.txt 更新a.txt的時間戳和b.txt相同
-bash-4.1# stat b.txt File: b.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: fh/15d Inode: 1849094 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-11-10 00:13:02.000000000Modify: 2016-11-10 00:13:02.000000000Change: 2016-11-10 00:13:02.000000000-bash-4.1# stat a.txt File: a.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: fh/15d Inode: 1847885 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-11-10 00:10:29.000000000Modify: 2016-11-10 00:10:29.000000000Change: 2016-11-10 00:10:29.000000000-bash-4.1# touch -r b.txt a.txt -bash-4.1# stat b.txt File: b.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: fh/15d Inode: 1849094 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-11-10 00:13:02.000000000Modify: 2016-11-10 00:13:02.000000000Change: 2016-11-10 00:13:02.000000000
touch -t 162011011134.03 b.txt 設定文件的時間
-bash-4.1# touch -t 201611011134.03 b.txt -bash-4.1# stat b.txt File: b.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty fileDevice: fh/15d Inode: 1849094 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2016-11-01 11:34:03.000000000Modify: 2016-11-01 11:34:03.000000000Change: 2016-11-10 00:24:56.000000000
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
命令別名:獲取所有別名的定義 alias
-bash-4.1# alias ll='ls -l'-bash-4.1# aliasalias ll='ls -l'
-bash-4.1# stat b.txt|grep 2016Access: 2016-11-01 11:34:03.000000000Modify: 2016-11-01 11:34:03.000000000Change: 2016-11-10 00:24:56.000000000
6.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字的文件或目錄
ls -d /var/l*[0-9]*[[: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
mkdir /tmp/tfile-$(date "+%Y-%M-%d-%H-%M")
10.復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
cp /etc/p*[^0-9] /tmp/mytest1
11.復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
cp /etc/*.d /tmp/mytest2
12.復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
cp /etc/[l,m,n]*.conf /tmp/mytest3
原創文章,作者:N24-超,如若轉載,請注明出處:http://www.www58058.com/58748