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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...