7-28-文件管理

1.stat命令和時間戳 詳解

背景:       
        在Linux中,沒有文件創建時間的概念。只有文件的訪問時間、修改時間、狀態改變時間。也就是說不能知道
        文件的創建時間。但如果
        文件創建后就沒有修改過,修改時間=創建時間;如果文件創建后,狀態就沒有改變過,那么狀態改變時間=創
        建時間;如果文件創建后,
        沒有被讀取過,那么訪問時間=創建時間,這個基本不太可能。
時間戳:每一個文件都有3中時間(稱為時間戳timestamps),對這3種時間,很多時候容易混淆不清。
            Access time(atime):是指查看文件(內容)的時間,所謂取用,常見的操作有:使用編輯器查看文件內
        容,使用cat命令顯示文件內容,使用cp命令把該文件(即來源文件)復制成其他文件,或者在這個文件上運
        用grep sed more less tail head 等命令,凡是讀取而不修改文件的操作,均衡改變文件的Access time.  
            Modify time(mtime):是指修改文件內容的時間,只要文件內容有改動(如使用轉向輸出或轉向附加的
        方式)或存盤的操作,就會
            改變文件的Modify time,平常我們使用ls –l查看文件時,顯示的時間就是Modify time          
        Change time(ctime):是指文件屬性(元數據)或文件位置改動的時間,如使用chmod,chown,mv指令集使
        用ln做文件的硬是連接,就會改變文件的Change time.  
                
stat命令:查看文件狀態
    功能說明:顯示inode內容
    語  法:stat [文件或目錄]
    補充說明:stat以文字的格式來顯示inode的內容
        [root@localhost ~]# stat install.log
          File: "install.log"
          Size: 47326      Blocks: 104        IO Block: 4096   普通文件
        Device: 803h/2051d Inode: 915714      Links: 1
        Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
        Access: 2016-07-19 19:19:11.179998361 +0800
        Modify: 2016-07-19 19:38:08.996997327 +0800
        Change: 2016-07-19 19:38:31.687997301 +0800
        
    stat -f 顯示了有關文件系統(而非文件)的信息
        [root@localhost testdir]# stat -f python_dir/getFTPdir.py 
          File: "python_dir/getFTPdir.py"
            ID: 78f86a0ed0592c40 Namelen: 255     Type: ext2/ext3
        Block size: 4096       Fundamental block size: 4096
        Blocks: Total: 4819016    Free: 3886210    Available: 3639746
        Inodes: Total: 1234576    Free: 1128101

2.touch命令:刷新時間

    touch命令用來修改文件時間戳,或者新建一個不存在的空文件
    用法:touch [OPTION]... FILE...
    選項:
        -a: 僅改變 atime
        -m: 僅改變 mtime
        -r  把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同(touch -r a b 將b的日期設置成a的)
        -t: 使用指定的日期時間,而非現在的時間。[[CC]YY]MMDDhhmm[.ss]
        -c: 如果文件不存在,則不予創建

3.cp命令

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST
選項
    -i:交互式
    -r, -R: 遞歸復制目錄及內部的所有內容;
    -a: 歸檔,相當于-dR --preserv=all
    -d: --no-dereference --preserv=links 不復制原文件,只復制鏈接名
    --preserv[=ATTR_LIST]
         mode: 權限
         ownership: 屬主屬組
         timestamp:
         links
         xattr
         context
         all
    -p: 等同--preserv=mode,ownership,timestamp    
    -v: --verbose
    -f: --force

cp.png

 4.alias別名

        為了方便頻繁使用某一命令,Linux系統提供了一個有用的工具叫alias,可以讓我們將一些需要頻繁使用的但又過于冗長的命令設置一個別名,這樣一來,以后只需輸入一個簡短的別名就可以達到同樣的作用

定義:  
        顯示當前shell進程所有可用的命令別名    
                ~]#alias
        定義別名NAME,其相當于執行命令VALUE
            ~]#alias NAME='VALUE'
        注:在命令行中定義的別名,僅對當前shell進程有效,要想永久有效,要定義在配置文件中:
                僅對當前用戶: ~/.bashrc
                對所有用戶有效: /etc/bashrc
        編輯配置完成后,要重讀配置文件,采用. /PATH/FILE或source /PATH/FILE
刪除:
        unalias 別名名稱
            -a 刪除所有別名
            
若別名和命令名稱相同,要執行原始命令,不執行別名:
        \COMMAND
        'COMMAND'
        /PATH/COMMAND (外部命令可用)

5.mv移動或重命名

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
        -i: 交互式
        -f: 強制

6.rm刪除

rm [OPTION]... FILE...
      常用選項:
      -i: 交互式
      -f: 強制刪除
      -r: 遞歸
      --no-preserve-root / 強制刪除根

7.目錄操作

tree 顯示目錄樹
        -d: 只顯示目錄
        -L level:指定顯示的層級數目
        -P pattern: 只顯示由指定pattern匹配到的路徑
mkdir 創建目錄
        -p: 存在于不報錯,且可自動創建所需的各目錄;
        -v: 顯示詳細信息
        -m MODE: 創建目錄時直接指定權限;
rmdir 刪除空目錄
        -p: 遞歸刪除父空目錄
        -v: 顯示詳細信息

8.file命令

檢查文文件類型,然后確定適當的開放命令或應用程序使用
file [options] <filename>...
Option:
      -b列出文件辨識結果時,不顯示文件名稱。    
      -c詳細顯示指令執行過程,便于排錯或分析程序執行形    
      -f列出文件中文件名的文件類型   
      -F使用指定分隔符號替換輸出文件名后默認的”:”分隔符  
      -i輸出mime類型的字符串   
      -L查看對應軟鏈接對應文件的文件類型    
      -z嘗試去解讀壓縮文件的內容
      --help顯示命令在線幫助

 9.inode和鏈接 詳解

inode和鏈接.png

 軟鏈接其他特點:

軟鏈接以l開頭
軟鏈接權限為777
軟鏈接文件大小為原文件路徑字符數

概念

1.linux上目錄結構

/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄
/bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序
/sbin:管理類的基本命令;不能關聯至獨立分區, OS啟動即會用到的程序
/lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)
/lib64:專用于x86_64系統上的輔助共享庫文件存放位置
/etc:配置文件目錄
/home/USERNAME:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動設備掛載點
/mnt:臨時文件系統掛載點
/dev:設備文件及特殊文件存儲位置
     b: block device,塊設備,隨機訪問
     c: character device,字符設備,線性訪問
/opt:第三方應用程序的安裝位置
/srv:系統上運行的服務用到的數據
/tmp:臨時文件存儲位置
/usr: universal shared, read-only data
     /bin/主要放置一些應用軟件工具的必備執行檔例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free等。
     /sbin:放置一些網路管理的必備程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba等
     /lib: 32位使用
     /lib64:只存在64位系統
     /include: C程序的頭文件(header files)
     /share:結構化獨立的數據,例如doc, man等
     /local:第三方應用程序的安裝位置
/var: variable data files
    /cache: 應用程序緩存數據目錄
    /lib: 應用程序狀態信息數據
    /local:專用于為/usr/local下的應用程序存儲可變數據;
    /lock: 鎖文件
    /log: 日志目錄及文件
    /opt: 專用于為/opt下的應用程序存儲可變數據;
    /run: 運行中的進程相關數據;通常用于存儲進程pid文件
    /spool: 應用程序數據池
/tmp: 保存系統兩次重啟之間產生的臨時數據
/proc: 用于輸出內核與進程信息相關的虛擬文件系統
/sys:用于輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux: security enhanced Linux, selinux相關的安全策略等信息的存儲位置
centos7目錄變化:
    /bin轉移到/usr/bin;/sbin轉移到/usr/sbin;/lib轉移到/usr/lib;/lib64轉移到/usr/lib64.
綜述:如果這是用戶和管理員必備的二進制文件,就會放在/bin。如果這是系統管理員必備,但是一般用戶根本不會用到的二進
制文件,就會放在 /sbin。相對而言。如果不是用戶必備的二進制文件,多半會放在/usr/bin;如果不是系統管理員必備的工
具,多半會放在/usr/sbin。

2.linux上命令組成

二進制程序: /bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
庫文件: /lib, /lib64, /usr/lib, /usr/lib64,/usr/local/lib, /usr/local/lib64
配置文件: /etc, /etc/DIRECTORY, /usr/local/etc
幫助文件: /usr/share/man, /usr/share/doc,/usr/local/share/man, /usr/local/share/doc

3.文件類型

-:普通文件
d: 目錄文件
b: 塊設備
c: 字符設備
l: 符號鏈接文件
p: 管道文件pipe
s: 套接字文件socket

 4.絕對路徑和相對路徑

絕對路徑:
        以正斜杠(/)開始
        完整的文件的位置路徑
        從根下開始定義路徑
 相對路徑:
         不以斜線開始
         指定相對于當前工作目錄或某目錄的位置
         .表示當前目錄
         ..表示上級目錄
                 
改變目錄:
        到上一級目錄:cd ..
        為了你的主目錄:cd
        到以前的工作目錄:cd -
        
環境變量:
        PWD:保存了當前目錄路徑
        OLDPWD:上一次所在目錄路徑

 5.文件名通配

* 匹配零個或多個字符? 
? 匹配任何單個字符? 
~ 當前用戶家目錄? 
~username 用戶家目錄? 
~+ 當前工作目錄? 
~- 前一個工作目錄? 
[0-9] 匹配一個數字范圍? 
[a-z]:大寫和小寫字母? 
[A-Z]:大寫字母
        [wxc]:匹配列表中的任何的一個字符
        [^wxc]:匹配列表中的所有字符以外的字符
        
[:digit:]:任意數字,相當于0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:space:]:空格
[:punct:]:標點符號

原創文章,作者:M20-1--孔祥文,如若轉載,請注明出處:http://www.www58058.com/26621

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-08-02 10:58
下一篇 2016-08-02 10:58

相關推薦

  • httpd

      httpd http服務器程序:   httpd (apache) nginx lighttpd httpd的特性:   高度模塊化: core + modules DSO:dynamic shared object(模塊的動態加載) MPM:Multipath processing Modules (多路處理模塊) &nb…

    Linux干貨 2017-06-04
  • LVS模型練習

    本次涉及到的練習:nat練習、dr練習、FWM機制練習、mysql集群練習、httpd的集群練習、httpd和mysql結合調度的練習 yum install ipvsadm nat練習     設置:     (1)centos7.2作為lvs調度,有兩塊網卡,(公網地址)其中…

    Linux干貨 2016-10-30
  • N_28包管理器(rpm)及前端管理工具(yum)

    1、簡述rpm與yum命令的常見選項,并舉例 rpm–>RPM package manager 是一種用于redhat發行版的打包及安裝管理工具,現在成為linux領域包管理器的行業標準,包名以.rpm為后綴。 用法: rpm [options] PACKAGE_FILE 常用選項: -i:安裝rmp包 -v:顯示安裝過程 -vv:更加詳細…

    Linux干貨 2018-01-01
  • N28-第二周博客作業

    常用通配符
    *:表示任意長度的任意字符;

    ?:表示任意的單個字符;

    []:表示在指定范圍內的單個字符:[a-z];

    [^]:脫字符,是取反的意思,即在指定范圍以外的任意字符,如 [^0-9]表示除數字以外的一切字符。

    [:digit:] 表示所有的數字,相當于0-9

    [:lower:] 表示所有的小寫字母

    [:upper:] 表示所有的大寫字母

    [:alpha:] 表示所有的字母,

    [:alnum:] 相當于[0-9a-z]

    [:space:] 相當于空白字符

    [:punct:] 表示所有的標點符號

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

    2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。

    3、請使用命令行展開功能來完成以下練習:

    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_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

    4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

    5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

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

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

    8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。

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

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

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

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

    Linux干貨 2017-12-11
  • Mariadb數據庫復制系列(二):主主復制

       實驗二:MySQL雙主復制架構的實現 雙主的實現方式與主/從類似,僅是兩個主機即使主節點,又是對方的從節點雙主模型容易造成數據的不一致性,因此要慎用! 1、實驗環境 2、在兩個節點上安裝mariadb-server服務 3、修改兩個節點的服務器配置文件 4、兩個節點上各自啟動服務,各授權一個具有復制權限的用戶 5、查看兩個節點的二進制日志的狀態 6、在…

    Linux干貨 2016-11-24
  • 實戰自制Linux操作系統

    實戰自制Linux操作系統 自制linux系統 步驟概述: 1、新建一個硬盤2、在該新硬盤上新建兩個分區,一個當boot分區,一個當/分區3、格式化并且掛載兩個分區4、安裝grub至目標磁盤5、為grub提供配置文件6、復制內核文件和initrd文件7、創建目標主機根文件系統8、移植bash命令和其庫文件到根文件系統9、裝載模塊,實現網絡功能10、啟動測試 …

    Linux干貨 2016-09-19
欧美性久久久久