Linux 文件系統 -- 簡述幾種文件類型

来源:https://www.cnblogs.com/tongye/archive/2019/02/21/10410098.html
-Advertisement-
Play Games

Linux 中一切皆為文件,文件類型也有多種,使用 ls -l 命令可以查看文件的屬性,所顯示結果的第一列的第一個字元用來表明該文件的文件類型,如下: 1、普通文件 使用 ls -l 命令後,第一列第一個字元為 "-" 的文件為普通文件,如上圖所示,普通文件一般為灰色字體,綠色字體的是可執行文件,紅 ...


  Linux 中一切皆為文件,文件類型也有多種,使用 ls -l 命令可以查看文件的屬性,所顯示結果的第一列的第一個字元用來表明該文件的文件類型,如下:

1、普通文件

  使用 ls -l 命令後,第一列第一個字元為 "-" 的文件為普通文件,如上圖所示,普通文件一般為灰色字體,綠色字體的是可執行文件,紅色字體的是壓縮文件。

文件的許可權:

  以普通文件為例,使用 ls -l 命令,可以看到結果的第一列是 -rwxrwxrwx 的形式,其中第一個字元 "-" 表示這個文件為普通文件,它也可以是其他的字元,不同的字元代表不同類型的文件。其後的一串字元表明瞭該文件的許可權,其中:

1)r 表明該文件具有可讀許可權,若該位置為 "-" ,則表明文件不可讀;

2)w 表明該文件具有寫許可權,若該位置為 "-" ,則表明文件不可寫;

3)x 表明該文件具有可執行許可權,若該位置為 "-" ,則表明文件不具有可執行許可權;

4)第一個 rwx 表示該文件的所有者對該文件的許可權;第二個 rwx 表示該文件所屬組對該文件的許可權;第三個 rwx 表示其他用戶對該文件的許可權。

創建一個普通文件:

  可以使用 touch 命令來創建一個文件:

touch newfile

刪除一個普通文件:

  可以使用 rm 命令來刪除一個文件:

rm newfile

 

2、目錄文件

  Linux 中的目錄也是文件,目錄文件中保存著該目錄下其他文件的 inode 號 和文件名等信息,目錄文件中的每個數據項都是指向某個文件 inode 號的鏈接,刪除文件名就等於刪除與之對應的鏈接。目錄文件的字體顏色是藍色,使用 ls -l 命令查看,第一個字元為"d"(directory)。

目錄文件的許可權

1)r 表明該目錄文件具有可讀許可權,即可以使用 ls 命令查看該目錄的存儲情況;

2)w 表明該目錄文件具有寫許可權,即可以往該目錄下添加、修改、刪除文件;

3)x 表明該目錄文件具有可執行文件,即可以使用 cd 命令進入到該目錄下。

  可以使用 chmod 指令來改變文件的許可權。

創建一個目錄:

  可以使用 mkdir 命令來創建一個目錄文件:

mkdir directory

刪除一個目錄:

  可以使用 rmdir 命令來刪除一個空目錄:

rmdir directory

  如果該目錄下有其他文件,則可以使用 rm -r 命令來遞歸刪除該目錄下的所有文件。需要註意的是,使用該命令將會刪除該目錄及目錄下的所有數據,過程不可逆,需要謹慎使用:

rm -r directory

 

3、鏈接文件

  鏈接文件一般指的是一個文件的軟連接(或符號鏈接),使用 ls -l 命令查看,第一個符號為  "l",文件名為淺藍色,如下:

   這裡,test_softlink 就是一個鏈接文件,從結果上還可以看到它是文件 test.txt 的軟鏈接,刪除原文件 test.txt 的話,對應的軟鏈接文件 test_softlink 也會消失。可以使用 ln 命令來創建一個文件的鏈接文件:

1)軟鏈接

  軟鏈接(又稱符號鏈接),使用 ln -s file file_softlink 命令可以創建一個文件的軟鏈接文件:

ln -s test.txt test_softlink

  軟鏈接相當於給原文件創建了一個快捷方式,如果刪除原文件,則對應的軟鏈接文件也會消失。

2)硬鏈接

  硬鏈接,相當於給原文件取了個別名,其實兩者是同一個文件,刪除二者中任何一個,另一個不會消失;對其中任何一個進行更改,另一個的內容也會隨之改變,因為這兩個本質上是同一個文件,只是名字不同。使用 ls -i 命令查看,可以發現硬鏈接的兩個文件的 inode 號是一樣的:

  同樣的,使用 ln 命令可以創建一個文件的硬鏈接:

ln test.txt test_hardlink

 

4、設備文件

  Linux 中的硬體設備如硬碟、滑鼠等也都被表示為文件,即為設備文件。設備文件一般存放在 /dev/ 目錄下,文件名為黃色,如下:

  設備文件分兩種:

1)塊設備文件:

  塊設備文件支持以塊(block)為單位的訪問方式。在 EXT4 文件系統中,一個 block 通常為 4KB 的大小,也就是說每次可以存取 4096(或其整數倍) 個位元組的數據。應用程式可以隨機訪問塊設備文件的數據,程式可以自行確定數據的位置,硬碟、軟盤等都是塊設備。使用 ls -l 命令查看,塊設備文件的第一個字元是 "b"(block)。

2)字元設備文件:

  字元設備文件以位元組流的方式進行訪問,由字元設備驅動程式來實現這種特性,這通常要用到 open、close、read、write 等系統調用。字元終端、串口和鍵盤等就是字元設備。另外,由於字元設備文件是以文件流的方式進行訪問的,因此可以順序讀取,但通常不支持隨機存取。使用 ls -l 命令查看,字元設備文件的第一個字元是 "c"(char)。

 

5、管道文件(FIFO文件)

  管道文件主要用於進程間通信,使用 ls -l 命令查看,第一個字元為 "p"(pipe)。可以使用 mkfifo 命令來創建一個管道文件:

mkfifo fifo_file

  在 FIFO 中可以很好地解決在無關進程間數據交換的要求,FIFO 的通信方式類似於在進程中使用文件來傳輸數據,只不過 FIFO 類型的文件同時具有管道的特性,在讀取數據時,FIFO 管道中同時清除數據。 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一篇文章講了 k8s使用helm打包chart並上傳到騰訊雲TencentHub,今天就講一下使用Helm部署應用並使用configMap代替asp.net core 中的appsettings.json文件。 把Chart上傳到TencentHub之後,我們就可以通過騰訊雲的容器服務,直接部署H ...
  • SqlTableDependency是一個組件用來接收資料庫的通知,包含在數據表上該記錄的值的Inserted、Deleted或者Update操作. 備註:原文提供示例代碼下載,但是js寫的有些問題(沒有更新數據),可以參考下文代碼修改一下,修改後的代碼可以接收插入和更新兩個,對刪除沒有處理。 介紹 ...
  • 到目前為止大家應該對鏡像和容器有了一個大概認知,而且也用了docker進行了一個簡單化的部署,但仔細一看問題還有很多,所以這篇我們繼續完善。 一:如何讓外網訪問到容器內應用 我們知道容器內擁有自己的子網,和你的主機ip不在一個網段內,所以宿主之外的機器是無法訪問的,要實現的話你只能通過nat轉發,在 ...
  • 1. IIS設置 1.1 創建SSL證書 點擊左側菜單欄頂部,點擊“功能視圖”里的“伺服器證書”: 點擊“創建自動簽名證書”創建自動簽名證書: 1.2 設置SSL證書 點開網站,在“功能視圖”里點擊“SSL設置”: 如圖,設置SSL: 1.3 綁定SSL證書 點開網站,在右側“操作”欄點擊“綁定”: ...
  • 在傳統的.NET框架中,我們給圖片添加水印有的是通過HttpModules或者是HttpHandler,然後可以通過以下代碼添加水印: 但是在.NET Core中不允許你這麼幹了,因為沒有WebImage這個類型了。在現在的.NET Core中我們都是通過IFormFile來上傳文件,這包含了很多格 ...
  • 在Windows Server平臺因業務需求經常會用到NIC雙網卡綁定,同樣Linux平臺下用於網路負載均衡及網路冗餘會用到bond模式。Bond模式:0-6,即7種模式。模式一:mod=0 ,即:(balance-rr) Round-robin policy(平衡輪循策略)特點:傳輸數據包順序是依... ...
  • 顯示前3行數據 ls -l|head -n 3 顯示後3行數據 ls -l|tail -n 3 ...
  • 在我們日常工作中或者日常針對AD進行自動化開發的過程中,我們都會對UserPrincipalName與SamAccountName產生疑惑,畢竟很多時候大家都把這兩個屬性值理解為同一個概念,至於為什麼總是說不清楚,今天就簡單歸總下該內容。UserPrincipalName:指定要由客戶端進行身份驗證... ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...