Linux---檔案、軟連結於硬連結檔案

南陽0146發表於2020-11-10

在Linux中,一切皆檔案,因此我們需要對Linux下的檔案系統有個清楚的認識。

檔案屬性

在Linux中,我們可以通過ls -l或者ll檢視具體檔案資訊。
在這裡插入圖片描述
在這裡插入圖片描述
注意:ls命令是用於檢視當前路目錄下的檔名,但是不能檢視檔案屬性。

檔案屬性具體都有哪些:

  • 以‘-’開頭的都為普通檔案。

在這裡插入圖片描述

  • 以d開頭的檔案為目錄檔案
  • 以b開頭的檔案為裝置檔案(硬碟、光碟機)
  • 以l開頭的檔案為連結檔案
  • 以p開頭的檔案為管道檔案
    在這裡插入圖片描述
    在這裡插入圖片描述

檔案許可權

其中對應的許可權分別為:

  • r可讀
  • w可寫
  • x可操作

如果我們需要檢視一個檔案的許可權,我們可以使用ls l搭配使用。

在這裡插入圖片描述
上面這個檔案,其中所有者的許可權為可讀可寫,所屬組的許可權為可讀可寫,其餘許可權為可讀。

軟連結與硬連結

  • 軟連結檔案
    類似於一個快捷方式,在Linux中軟連結檔案類似於文字檔案。類似於一個文字檔案包含著另一個檔案的位置資訊內容,因此我們可以通過這個“快捷檔案”訪問到軟連結的原始檔,對該”快捷方式“進行讀寫的時候,實質就是對軟連結原始檔進行操作,但是刪除該”快捷方式“的時候,不會刪除原始檔。

  • 硬連結檔案
    類似於一個檔案的別名,我們對檔案硬連結檔案進行操作的時候,首先通過這個別名找到對應的原始檔,再對原始檔進行操作。在刪除硬連結檔案的時候,系統是不會刪除硬連結的原始檔。如果刪除硬連結的原始檔,則硬連結的檔案不會刪除,並且儲存其原本的資料。因此硬連結檔案可以預防”誤刪“的操作。

區別

  • 硬連結檔案不佔用磁碟空間,僅僅是給其增加了一個別名(目錄)
  • 軟連結佔磁碟空間,由於其本質是一個快捷方式,因此其佔用的記憶體也不是很多。
  • 不能對目錄建立硬連結。
  • 不能跨檔案系統建立硬連結檔案。

檔案描述符

當我們開啟或者建立一個檔案的時候,Linux核心會向一個程式傳送一個檔案的描述符。一個程式啟動的時候,預設會開啟3個檔案(0標準輸入、1標準輸入、2標準錯誤)
int creat(const char* pathname,mode_t mode);

  • pathname:建立檔案的路徑
  • mde:檔案許可權
#include<stdio.h>
#include<fcntl.h>

int main()
{
	int fd = -1;
	char filename[] = "/root/text.txt";//建立檔案的路徑
	fd = creat(pathname,066);
	if(fd == -1)
	{
		printf("檔案建立失敗\n");
	}
	else
	{
		printf("檔案建立成功\n");
	}
	return 0;
}

相關文章