1. 程式人生 > >Linux文件管理_1

Linux文件管理_1

默認 系統 reserve 查找 不同的 指定權限 upper 源文件 inode

  在Linux中,全部都是文件,所以文件管理在Linux上格外重要,在我們學習文件管理前,我們先學習幾個關於文件的命令,之後才能更好的學習文件管理。
  目錄
    pwd命令
    cd命令
    列出文件內容ls
    查看文件狀態stat
    創建文件touch
    文件通配符
    復制命令cp
    移動與重命名mv
    刪除rm
    顯示目錄樹tree
    創建文件夾mkdir
    刪除文件夾rmdir
    查看文件類型file
    拓展:rename&&shred

顯示當前工作目錄

  每個shell和系統進程都有一個當前的工作的目錄
  CWD:current work directory
  顯示當前的shell CWD的絕對路徑pwd


    打印工作目錄(當前所在目錄)
  參數:
    -P 顯示真實物理路徑
    -L 顯示連接路徑(默認)

技術分享

改變目錄

  格式:cd [option] dir
  作用:改變目錄
    切換到父目錄:cd ..
    切換到當前用戶主目錄:cd
    切換至以前的工作目錄:cd –
  選項:-P 直接進入原目錄(非鏈接目錄)
  相關的環境變量:
    PWD:當前目錄文件
    OLDPWD:上一次目錄路徑  

列出當前目錄的內容或指定目錄

  格式:ls [option] [files|dirs]
  作用:列出當前目錄的內容或指定目錄
  用法:
     ls -a 顯示所有文件


     ls -A 顯示所有文件,除.、..
     ls -l 長列出
     ls -R 遞歸
     ls -ld 顯示指定目錄的詳細信息。
     ls -1 豎顯示
     ls -S 按文件大小降序排列
     ls -t 按修改時間(mtime)從新到舊排列
     ls -ut 按訪問時間(atime) 從新到舊排列
     ls -U 按文件存放的先後順序
     ls -X 按文件後綴排序
     ls -i 顯示文件的inode號
     ls -Z 顯示文件的context值

技術分享

查看文件的狀態

  命令:stat
  文件:metadata,data
  三個時間戳:
      access time:訪問時間,atime,讀取文件內容
      modify time:修改時間,mtime,改變文件內容(數據)
      change time:改變時間,ctime,元數據發生改變

技術分享

創建空文件和刷新時間

  格式:touch [option]… file …
  作用:創建空文件和刷新時間
  OPTION:
    -a 僅改變atime和ctime
    -m 僅改變mtime和ctime
    -t [[CC]YY]MMDDhhmm[.ss]
      指定atime和mtime的時間戳
  -c 如果文件不存在,則不予創建
  touch filename :
    當文件不存在時,則創建一個空文件,名為filename
    當文件已存在時,則更新期時間戳
    -a 僅更新atime,ctime
    -m 僅更新mtime, ctime
    touch filename 更新全部時間戳。

技術分享

文件通配符

  在好多時候我們可能需要查找有相同字符,或者有一定規則的名字的文件或目錄,如果我們還是利用手工一點一點的去敲出來,無疑會浪費我們好多時間,此時,我們可以利用通配符來進行文件匹配,可以較少好多我們的時間,快捷,方便,首先我們看看都有那些通配符:
    * 匹配零個或多個字符
    ? 匹配任何單個字符
    ~ 當前用戶家目錄
    ~mage 用戶mage家目錄
    ~+ 當前工作目錄
    ~- 前一個工作目錄
    [0-9] 匹配數字範圍
    [a-z]: 字母
    [A-Z]: 字母
    [wang] 匹配列表中的任何的一個字符
    [^wang] 匹配列表中的所有字符以外的字符

  還有一種就是預定義的字符類,同樣是作為通配符使用
  預定義的字符類: #man 7 glob
    [:digit:]: 任意數字, 相當於0-9
    [:lower:]: 任意小寫字母
    [:upper:]: 任意大寫字母
    [:alpha:]: 任意大小寫字母
    [:alnum:]: 任意數字或字母
    [:blank:]: 水平空白字符
    [:space:]: 水平或垂直空白字符
    [:punct:]: 標點符號
    [:print:]:可打印字符
    [:cntrl:]: 控制(非打印)字符
    [:graph:]: 圖形字符
    [:xdigit:]: 十六進制字符
  接下來我們通過一些演示來說明如何使用通配符
    1、 顯示/var目錄下所有以l開頭, 以一個小寫字母結尾, 且中間出現至少一位數字的文件或目錄

技術分享
    2、 顯示/etc目錄下以任意一位數字開頭, 且以非數字結尾的文件或目錄

技術分享
    3、 顯示/etc/目錄下以非字母開頭, 後面跟了一個字母及其它任意長度任意字符的文件或目錄

技術分享
    4、 顯示/etc/目錄下所有以rc開頭, 並後面是0-6之間的數字,其它為任意字符的文件或目錄

技術分享

復制文件和目錄cp

  命令:cp
  格式:cp[option]...[-T] source dest
    cp[option]...source...directory
    cp[option]... -t directory source
  說明:
    cp A B
     A是文件
      1.如果目標不存在,新建B,並將A中的數據拷貝到B中
      2.如果目標存在,且B是文件,將A中的數據覆蓋到B中
      3.如果B是目錄,在B下新建一個與源文件同名的文件並將內容進去
技術分享
     A是目錄:(需要參數 -r)
      1.如果B不存在,則創建指定目錄,則創建指定目錄,復制A目錄下文件到B目錄
      2.如果B存在:
        1.如果B是文件:報錯
        2.如果B是目錄:則將包括A目錄一起復制到B
技術分享
   cp A B C D H
     如果ABCD是文件:
      當 H 是目錄且存在的情況下才能拷貝
      如果ABCH是目錄:(必須用 -r)
      當 H 是目錄且存在的情況下才能拷貝,將包括ABCD目錄一起復制到H下

技術分享

   cp常用選項:(cp本身是直接復制原文件的,而不是鏈接文件)
     -i:prompt before overwrite 覆蓋前提示
     -n:do not overwrite an existing file 不覆蓋已存在的文件(也不追加)
     -r,-R:copy directories recursively 遞歸拷貝目錄以及文件內容
     -a:same as -dR --preserve=all 拷貝全部文件且權限不變
     -d:same as --no-dereference --preserve=links
        若文件為鏈接文件,則只復制鏈接屬性,不復制源文件本身
     -p:連同文件的屬性一起復制過去,而非使用默認屬性(備份常用)
     -f:當覆蓋時,如目的文件的缺少寫權限時,強制刪除目的文件,並新建再填充內容。當有-n時,無效
     -v:顯示拷貝的過程

技術分享

技術分享

移動和重命名文件

  格式:mv [OPTION]... A(源)... B(目的)
  作用:移動和重命名文件
  參數:-i: 交互式(會詢問)
     -f: 強制(不詢問)
  說明:一般我們會用這個命令進行移動和重命令,如果我們將文件移動到不同的文件,就是移動,如果我們將文件移動到原目錄,就是重命令

技術分享

刪除操作

  格式:rm [OPTION]... FILE...
  作用:刪除文件或目錄
  參數:-i: 交互式
     -f: 強制刪除
     -r: 遞歸(可以遞歸刪除文件和目錄)

技術分享

目錄操作

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

技術分享

確定文件內容

  格式:file [options] <filename>...
   常用選項:
    -b 列出文件辨識結果時, 不顯示文件名稱
    -f filelist 列出文件filelist中文件名的文件類型
    -F 使用指定分隔符號替換輸出文件名後默認的”:”分隔符
    -L 查看對應軟鏈接對應文件的文件類型
    --help 顯示命令在線幫助

技術分享

拓展:

  rename:批量改名 ‘.txt‘ ‘.doc‘ *.txt
  shred 粉碎功能(不做演示)

技術分享

Linux文件管理_1