元數據、修改時間戳、文件名通配、定義命令的別名、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
下一篇 2016-11-06

相關推薦

  • linux基礎入門之一

    一、計算機的組成與功能 計算機由硬件和軟件組成 硬件: 按馮·洛伊曼體系劃分 1、CPU:包括運算器、控制器、寄存器、緩存,對數據控制和計算 2、存儲器:內部存儲器、外部存儲器,對數據提供存儲功能 3、輸入設備:具有下指令,提供數據輸入 4、輸出設備:輸出數據加工的結果 軟件: 1、低級語言:匯編語…

    Linux干貨 2016-09-19
  • 第一周作業

    描述計算機的組成及其功能。 由馮~諾伊曼提出計算機體系結構,計算機主要由控制器、運算器、存儲器、輸入設備、輸出設備五大硬件組成。 控制器(Controller):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器(Datapath):運算器的功能是對數據進…

    Linux干貨 2017-02-07
  • Nginx:

    來自為知筆記(Wiz)

    Linux干貨 2016-10-26
  • 第四天作業

    1 、創建 用戶gentoo ,附加組為bin 和root ,默認shell為/bin/csh ,注釋信息為"Gentoo Distribution" 1 useradd -G bin,root -s /bin/csh -c "Gentoo Distribut…

    Linux干貨 2016-08-04
  • httpd2.4 應用

    練習:  (1)基于主機名實現三個虛擬主機     (2) 每虛擬主機使用獨立的訪問日志和錯誤日志 (3) 第三個虛擬主機的/admin要進行用戶訪問認證  (4) 在第二個虛擬主機上提供/status; (5) 在第三個虛擬主機提供路徑別名/bbs,訪問其它文件系統路徑; (6) 嘗試使用混合類型…

    Linux干貨 2016-10-09
  • 面授20-1班 0805課間練習與課后作業

    課間練習 第一階段 新學的命令文本命令cat tac rev more less head tail cut paste wc sort dif patch 1 、找出ifconfig 命令結果中本機的所有IPv4 地址 [root@IP70-CentOS7 ~]# >>ifconfig | tr&nbsp…

    Linux干貨 2016-08-07

評論列表(1條)

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

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

欧美性久久久久