元數據、修改時間戳、文件名通配、定義命令的別名、I/O重定向及管道

 

文件的元數據

文件的數據分為兩類:一類為元數據,既屬性數據;一種就是數據本身:
  數據是指普通文件中的實際數據
  元數據指用來描述一個文件的特征的系統數據,諸如訪問權限、文件擁有者以及文件數據塊的分布信息(inode…)等等

那么如何查看文件的詳細信息?

stat命令:

功能說明:
    顯示inode內容
命令用法:
    stat  [文件或目錄]
演示示例:

顯示/etc目錄下fstab文件的相信信息: 
[root@localhost ~]# stat /etc/fstab 
  File: "/etc/fstab"
  Size: 860           Blocks: 8          IO Block: 4096   普通文件
Device: fd00h/64768d    Inode: 1048583     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-11-02 22:16:28.604999999 +0800
Modify: 2016-11-02 22:04:35.291999640 +0800
Change: 2016-11-02 22:13:17.833999187 +0800

各參數的含義:
File:文件的路徑
Size: 文件大小
Blocks: 這個文件使用的塊的總數
IO Block:這個文件的IO塊大小
普通文件:表示文件的類型
Device:十六進制設備號,設備數量的小數
Inode:Inode號是一個獨特的號碼,操作系統用inode號碼來識別不同的文件
Links:到文件的鏈接數
Access(0644/-rw-r--r--):文件的權限
Uid:文件所有者的UID和用戶名
Gid:文件所有者的GID和組名
access time:表示我們最后一次訪問(僅僅是訪問,沒有改動)文件的時間
modify time:表示我們最后一次修改文件的時間
change time:表示我們最后一次對文件屬性改變的時間,包括權限,大小,屬性等等
補充:

Linux系統上的文件類型:

 例如:
    [root@localhost ~]# ls -l /etc/fstab 
    -rw-r--r--. 1 root root 860 11月  2 22:04 /etc/fstab

    “-rw-r--r--”最前面的 “ - ”即表示文件的類型 
        -:常規文件;即f;
        d:directroy,目錄文件;
        b:block device,快設備文件,支持以“block”為單位進行隨機訪問;
        c:character device,字符設備文件,支持以“character”為單位進行線性訪問;
            major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序
            minor unmber:次設備號,用于標識同一類型中的不同設備
                8位二進制:0-255
        l:symbolic link,符號鏈接文件;
        p:pipe,命名管道;
        s:socket,套接字文件;

如何修改文件的時間戳信息?

  上面使用stat命令查看文件的詳細信息時顯示了三個關于文件的時間信息, 那么如何修改這三個時間信息呢?

touch命令:

功能說明:
    修改文件的時間戳,或者新建一個不存在的文件。
命令用法:
    touch [options]… FILE…
常用選項:
    -c:指定文件路徑不存在時不予創建
    -a:僅修改 access time
    -m:僅修改 modify time
    -t STAMP  :使用指定的日期時間
           [[cc]YY]MMDDhhmm[.ss] 即[年]月日小時分鐘[秒]
演示示例:

1、在/tmp/a_c目錄下創建文件test1
    [root@localhost ~]# cd /tmp/a_c
    [root@localhost a_c]# touch test1
    [root@localhost a_c]# ll
    總用量 0
    -rw-r--r--. 1 root root 0 11月  4 01:42 test1

2、修改文件test1文件的access time
    首先用stat命令查看到test1的access time時間為2016-11-04 01:46:24
    使用touch命令修改:
    [root@localhost a_c]# touch -a -t  11040201 test1
    再次stat:時間已經改為
    Access: 2016-11-04 02:01:00.000000000 +0800

定義命令的別名

命令別名:將一個命令用其他名字來代替
獲取所有可用別名的定義:
     ~]# alias
定義別名:
     ~]# alias NAME='COMMAND'
         注:僅對當前shell進程有效
撤銷別名:
     ~]# unalias NAME

glob實現文件名通配

所謂通配是指:顯示以指定條件的文件
匹配模式:元字符

     *:匹配任意長度的任意字符  
     ?:匹配任意單個字符  
     []:匹配指定范圍內的任意單個字符  
     字符集的表示方法:  
                        [[:upper:]]:表示所有大寫字母
                        [[:lower:]]:表示所有小寫字
                        [[:alpha:]]:表示所有字母
                        [[:digit:]]:表示所有數字
                        [[:alnum:]]:表示所有的字母和數字
                        [[:space:]]:表示所有空白字符
                        [[:punct:]]: 表示標點符號
        [^]:匹配指定范圍外的任意單個字符,與[]相反,即取反

I/O重定向和管道

輸出重定向:

            COMMAND > NEW_POS , COMMAND >> NEW_POS

            輸出重定向:>
                特性:覆蓋輸出,目標文件匯總的原有內容會被清除
            輸出重定向:>>
                特性:追加輸出,新內容會追加至目標文件尾部

            # set -c
                禁止覆蓋輸出重定向至已存在的文件
                此時可使用強制覆蓋輸出:>
            # set +c
                關閉上述特性
            錯誤輸出流重定向:2>,2>>

輸入重定向:

tr命令:
            tr [OPTION]... SET1 [SET2]
                        把輸入的數據當中的字符。凡是在SET1定義范圍內出現的,通通轉換為SET2出現的字符
            用法1:
                tr SET1 SET2 < /path/to/somefile
            用法2:
                tr -d SET1 < /path/to/somefile

            Here Doucment:<<
                cat << EOF    
                cat > /path/to/somefile <<EOF

管道:鏈接程序,實現將前一個命令的輸出直接定向后一個程序當做輸入數據流
      COMMAND1 | COMMAND2 | COMMAND3 | …      

        

 

練習:

1、顯示 /var 目錄下所有以 l  開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。

            [root@localhost ~]# ls -d /var/1?[[:lower:]]

2、顯示 /etc 目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。

            [root@localhost ~]# ls  /etc/[0-9]*[^0-9]

3、顯示 /etc 目錄下,以非字母開頭,

            [root@localhost ~]# ls /etc/[^a-z][a-z]*

4、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。

            [root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

5、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

            [root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1

6、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。

            [root@localhost ~]# cp -r /etc/*.d /etc/mytest2

7、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

            [root@localhost ~]# cp -r /etc/[lmn]*.conf /etc/mytest3

 

原創文章,作者:641348038@qq.com,如若轉載,請注明出處:http://www.www58058.com/57460

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-11-06 19:26
下一篇 2016-11-06 20:01

相關推薦

  • 馬哥教育網絡班19期+第7周課程練習

    1.創建一個10G分區,并格式為ext4文件系統:   (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl;   (2)掛載至/data/mydata目錄,要求掛載時禁止程序自行運行,且不更新文件的訪問時間戳;   fdisk /dev/sdb    part…

    Linux干貨 2016-06-22
  • N25期第一周作業

    計算機的組成與功能  一臺能正常工作的計算機有硬件和軟件組成,計算機的硬件就好比人的軀體,計算機的軟件就好比人的思想,人的思想控制指揮人的軀體,計算機有了軟件才能進行工作。 硬件大致由CPU,內存,輸入輸出設備,存儲設備組成,各個部件的主要作用流程是:由輸入設備(例如:鍵盤)輸入數據, 數據暫時出入內存, 而后由內存傳到CPU(CPU又由運算器+控…

    Linux干貨 2016-12-05
  • LVM邏輯卷管理相關命令的用法

    前提:創建分區,文件或添加硬盤作為LVM的物理卷 pv(物理卷) 命令用法 1、pvcreate創建pv pvcreate -s    指定PE大小,默認為4M 2、pvremove刪除pv 3、pvs,pvdisplay顯示pv pvs 顯示pv摘要 pvdisplay 詳細顯示pv 4、pvmove:把卷組中一個物…

    Linux干貨 2016-08-30
  • 馬哥教育網絡班21期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 # cp -a /etc/skel /home/tuser1 # chmod -R g-rwx,o-rwx /home/tuser1/ 2、編輯…

    Linux干貨 2016-07-16
  • 用戶和權限管理

    一、用戶 Linux中用戶是資源獲取的標識符,資源分配,文件系統安全權限模型的核心要素之一。密碼則是用戶認證的憑證,用戶信息和密碼信息都存放在相應的文本文件中,密碼信息在存放的過程用了一定的加密算法進行加密。   1.加密算法: 資源分派:    Authentication:認證(確認身份,也有可能好幾個人一個身份) &nbs…

    Linux干貨 2016-08-05
  • 利用keepalived實現nginx七層負載均衡器雙主模型高可用集群

    nginx通過ngx_http_upstream_module可以實現七層http服務的負載均衡,同時還自帶RS的健康監測功能,但是也有弊端,nginx負載均衡器如果發生故障則整個集群失效,此文通過keepalived構建nginx負載均衡器的高可用集群。 一、實驗環境: 實驗需要4臺服務器: nginx負載均衡器1:192.168.11.100 nginx…

    2017-07-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-10 20:24

    總結的不錯~贊~繼續加油~

欧美性久久久久