Linux文件管理

Linux文件系統(tǒng)

文件系統(tǒng)結(jié)構(gòu)

目錄結(jié)構(gòu)介紹

文件路徑

絕對路徑

以根目錄為起始點(diǎn),逐層向下到達(dá)目標(biāo)文件的完整路徑

相對路徑

從當(dāng)前位置開始,到達(dá)目標(biāo)文件的路徑

文件類型

普通文件

“-”代表普通文件

純文本文件

二進(jìn)制可執(zhí)行文件:內(nèi)容不可直接使用文本編輯器讀取

數(shù)據(jù)格式文件:程序運(yùn)行過程中需要讀取的存放在某些特定格式的數(shù)據(jù)文件,
             比如圖片、壓縮文件、日志文件。

last 命令可以查看此類文件內(nèi)容

目錄文件

“d”代表目錄

鏈接文件

“l(fā)”鏈接

 文件在Linux上被分成兩部分:數(shù)據(jù)(data)與元數(shù)據(jù)(metadata),data數(shù)據(jù)內(nèi)容被存
                          放在文件對應(yīng)的數(shù)據(jù)塊(data block);指向data數(shù)據(jù)存
                          放位置的信息存放在inode(index number)中。

創(chuàng)建鏈接文件

ln [OPTION] 被鏈接文件  生成的鏈接文件

-b 覆蓋以前先備份

-d,-F 允許超級用戶制作硬鏈接

-f 強(qiáng)制執(zhí)行

-i 交互模式

-s 創(chuàng)建軟鏈接

-v 顯示處理過程

-S 指定備份的文件后綴

--help 幫助

--version 顯示版本

硬鏈接

  1. 文件有相同的inode 及data block

  2. 只能對已存在的文件進(jìn)行創(chuàng)建

  3. 不能跨分區(qū)創(chuàng)建硬鏈接

  4. 不能對目錄進(jìn)行創(chuàng)建,只可對文件創(chuàng)建

  5. 刪除一個(gè)硬鏈接文件并不影響其他有相同inode號的文件

軟鏈接

  1. 軟鏈接有自己的文件屬性及權(quán)限等

  2. 可對不存在的文件或目錄創(chuàng)建軟鏈接

  3. 軟鏈接可跨分區(qū)創(chuàng)建

  4. 軟鏈接可對文件或目錄創(chuàng)建

  5. 創(chuàng)建軟鏈接時(shí),鏈接計(jì)數(shù)不會增加

  6. 刪除軟鏈接并不影響被指向的文件,若被指向的文件被刪除,相關(guān)軟鏈接被稱為死鏈,若被
     指向路徑文件被重新創(chuàng)建,死鏈可恢復(fù)為正常的鏈接

管道文件

 “p“管道

 是一種偽文件(實(shí)為內(nèi)核緩沖區(qū)),主要目的是為了實(shí)現(xiàn)進(jìn)程間通信
(InterProcess Communication,IPC)

1. 自己寫的數(shù)據(jù)不能自己讀

2. 數(shù)據(jù)一旦被讀后,便不在管道中存在,不可反復(fù)讀取

3. 管道采用半雙工通信方式,同一時(shí)間數(shù)據(jù)只能在一個(gè)方向上流動

PS:在/run 目錄下可以看到管道文件

字符設(shè)備文件

“c“字符設(shè)備

按字符為單位進(jìn)行輸入輸出,且按一定的順序進(jìn)行,像鍵盤、鼠標(biāo)等。

塊設(shè)備文件

“b“塊設(shè)備

以“塊”為單位(例如4096個(gè)字節(jié)),訪問數(shù)據(jù),提供隨機(jī)訪問的接口設(shè)備,例如硬盤,U盤等

套接字文件

“s“套件字

數(shù)據(jù)接口文件,數(shù)據(jù)通信可基于全雙工實(shí)現(xiàn)。例如http 80端口

文件目錄管理命令

目錄查看

tree 查看目錄結(jié)構(gòu)

tree [OPTION…] 目錄

      -a 顯示所有文件和目錄

      -A 使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合

      -L # 顯示至目錄下第#級目錄

      -C 在文件和目錄上加色區(qū)分類型

      -d 僅顯示目錄
   
      -D 顯示目錄及文件更改時(shí)間

      -f 顯示完整的相對路徑

      -F 在各類型文件前加符號以區(qū)分

      -g 顯示系統(tǒng)及文件所屬組名

      -i 不以階梯狀列出文件或目錄

      -I 顯示鏈接文件指向的原文件

      -n 不加顏色

      -N 列出目錄及文件名,包括控制字符

      -p (小寫)顯示權(quán)限

      -P(大寫) pattern 只顯示符合pattern的目錄或文件

      -q 用“?”取代控制字符,列出目錄和文件名稱

      -s 列出目錄或文件大小

      -t 按更改時(shí)間排序

      -u 顯示目錄或文件的屬主

      -x 將范圍局限在現(xiàn)行的文件系統(tǒng)中,若指定目錄下的某些子目錄存放在另一個(gè)文件系統(tǒng)上,
         則將子目錄排除在搜索范圍外

目錄切換

  pwd 顯示當(dāng)前工作目錄

  cd 目錄切換

  cd – 在當(dāng)前目錄與上次打開目錄間切換

  cd ~ 切換到當(dāng)前用戶家目錄

目錄創(chuàng)建

mkdir

  mkdir [OPTION] 目錄名

        -m 指定創(chuàng)建目錄的權(quán)限

        -p 遞歸創(chuàng)建

        -v 顯示創(chuàng)建細(xì)節(jié)

目錄刪除

rmdir

rmdir [OPTION] 目錄名

      -p 刪除目錄及其空的目錄

      -v 顯示過程

文件管理命令

文件查看

ls [OPTION…] 目錄或文件

   -A 顯示除隱藏文件“.” “..”以外的所有文件

   -a 顯示所有文件包括隱藏文件

   -b 將文件中的不可輸出字符以\””加字符編碼顯示

   -C 多列顯示結(jié)果,默認(rèn)開啟

   -c 與-lt連用按文件狀態(tài)時(shí)間排序ctime,與-l連用按文件改變時(shí)間排序mtime

   --color 使用顏色標(biāo)記文件類型

   -d 僅顯示目錄

   -F 以符號標(biāo)記文件類型

   --full—time 列出完整的時(shí)間格式

   -i 顯示索引節(jié)點(diǎn)inode號

   -m 以逗號分隔目錄和文件

   -n 以UID,GID代替用戶名及組名顯示

   -R 遞歸顯示



  -r 以文件名逆序顯示



   -s 顯示目錄和文件大小以塊為單位



   -t 以文件和目錄的更改時(shí)間排序

查看文件內(nèi)容存儲源碼

   hexdump -C 文件名 一般默認(rèn)UTF-8

查看文件屬性

ls -l --time=[atime,mtime,ctime] 目錄或文件名

 默認(rèn)是mtime

atime:access time 最后一次訪問時(shí)間

mtime:modify time 最后一次數(shù)據(jù)修改時(shí)間

ctime:change time 最后一次元數(shù)據(jù)修改時(shí)間

注:當(dāng)文件的atime時(shí)間超過1天以上未變動,或文件的mtime比atime更晚,atime才會自動更新

stat命令

查看文件的屬性、元數(shù)據(jù)、數(shù)據(jù)、inode

stat 目錄或文件

file命令

file [OPTION] 文件名 查看文件類型

      -b 僅顯示文件類型,不顯示文件名

      -c 詳細(xì)顯示命令執(zhí)行過程

      -f 輸入個(gè)文件名依次顯示結(jié)果

      -L 直接顯示符號鏈接文件所指向的源文件類型

      -i 輸出文件對應(yīng)的MIME的類型 (Multipurpose Internet Mail Extensions) 是描述
         消息內(nèi)容類型的因特網(wǎng)標(biāo)準(zhǔn)。(例txt/plain 無格式文本)

      -v 顯示file命令版本信息

      -z 嘗試解讀壓縮文件的內(nèi)容

      file iconv -f gb2312 “gb2312格式存儲的文件名” -o “輸出后文件名” 轉(zhuǎn)成 UTF-8

      dos2unix file 轉(zhuǎn)換文件格式

      unix2dos file 轉(zhuǎn)換文件格式

文件創(chuàng)建

      touch 用于修改atime,mtime,ctime,當(dāng)修改的文件不存在時(shí)將創(chuàng)建一個(gè)空的文件。

touch [OPTION] FILE

      -a 只修atime

      -c 不新建任何文件

      -m 只修改mtime

      -r 修改文件時(shí)間屬性與參考文件相同

      touch -r 被引用的文件  要修改的文件



     -t 指定修改時(shí)間,格式為[[CC]YY]MMDDhhmm[.SS]

        --time=[atim,mtime,ctime]

文件復(fù)制

cp [OPTION..] 源 目的

    -a 全部

    -b 覆蓋已存在的目標(biāo)文件前對其先做備份

    -f 強(qiáng)制執(zhí)行

    -i 交互式,默認(rèn)開啟

    -p(小寫) 保留源文件的屬性

    -P (大寫)復(fù)制軟鏈接本身而非軟鏈接指向的文件

    -r/R 遞歸復(fù)制

    -s 對源文件建立符號鏈接,而非復(fù)制文件

    -v 顯示執(zhí)行過程

    -u 更新復(fù)制,源文件修改時(shí)間更新或目的文件不存在才執(zhí)行操作

    -S 指定備份文件的后綴,默認(rèn)“~’

    -x 檢驗(yàn)源和目的文件系統(tǒng)是否相同,相同則執(zhí)行操作,不同不執(zhí)行
源文件 目的文件不存在 目的文件存在 目的文件存在且為目錄
一個(gè) 先創(chuàng)建目的文件,再將源文件內(nèi)容復(fù)制到目標(biāo)文件中 將源文件內(nèi)容覆蓋至目標(biāo)文件中 在目錄下創(chuàng)建與源文件同名文件并將源文件內(nèi)容復(fù)制到目的文件中
多個(gè) 提示錯(cuò)誤 提示錯(cuò)誤 在該目錄下分別創(chuàng)建與源文件同名的文件,將源文件中的內(nèi)容復(fù)制至對應(yīng)的目的文件中
目錄 創(chuàng)建同名的目錄,復(fù)制源目錄中所有文件至目的目錄下 提示錯(cuò)誤 在目的目錄下創(chuàng)建同名目錄,并將源目錄下文件復(fù)制到目的目錄下

文件移動及重命名

   mv [OPTION…] 源 目的

   -b 當(dāng)文件存在時(shí),覆蓋前為其創(chuàng)建一個(gè)備份

   -f 強(qiáng)制執(zhí)行

   -i 交換式

   -u 當(dāng)源文件比目標(biāo)文件新或不存在時(shí)才執(zhí)行
源文件 目的文件不存在 目的文件存在 目的文件存在且為目錄
一個(gè) 移動至目的文件目錄下,源文件名重命名為目的文件名 將源文件內(nèi)容覆蓋至目標(biāo)文件中 直接移動到目錄
多個(gè) 提示錯(cuò)誤 提示錯(cuò)誤 直接移動到目的目錄
目錄 創(chuàng)建目的文件名目錄,移動至目的目錄下 提示錯(cuò)誤 直接移動

文件重命名

mv 也可以修改文件名

rename 源字符集 目的字符集 文件名

文件刪除

rm [OPTION…] 目錄或文件

   -f 強(qiáng)制執(zhí)行

   -i 交換式

   -d 刪除空目錄,非空目錄不能刪除

   -r/R 遞歸

 -v 顯示詳細(xì)細(xì)節(jié)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容