linux下檔案數 目錄數 檔名長度的各種限制

2021-07-05 10:31:37 字數 1397 閱讀 6777

coofucoo:寫的乙個程式需要密切關注這些系統特徵,以避免把系統寫壞。實際上現在出現過由於異常寫入大量檔案到乙個目錄中導致檔案系統無法列目錄的情況,連刪除都不行。但是linux還是相當健壯,至少我呼叫系統api刪除還是可行的,真救命。

refer:

以下測試都是在沒有優化或修改核心的前提下測試的結果

1. 測試目的:ext3檔案系統下filename最大字元長度

測試平台:rhel5u3_x64

測試過程:

lenth=`for i in ;do for x in a;do echo -n $x;done;done`

touch $lenth

當增加到256時,touch報錯,file name too long

linux系統下ext3檔案系統內給檔案/目錄命名,最長只能支援127個中文字元,英文則可以支援255個字元

測試平台:rhel5u3_x64

測試過程:

[root@fileserver maxdir]# for i in ;do mkdir $i;done

mkdir: cannot create directory `31999': too many links

mkdir: cannot create directory `32000': too many links

ext3檔案系統一級子目錄的個數為31998(個)。

linux為了cpu的搜尋效率而規定的,要想改變量目大概要重新編譯核心. 

3. 測試目的:ext3檔案系統下單個目錄裡的最大檔案數

測試平台: rhel5u3_x64

測試過程:

單個目錄下的最大檔案數似乎沒什麼特別限制,也是受限於所在檔案系統的inode數限制:

df -i或者使用tune2fs -l /dev/sdax或者dumpe2fs -h /dev/sdax檢視可用inode數,後兩個命令 

輸出結果是一樣的,但是跟df所得出的可用inode數會有些誤差,至今不明白什麼原因。

網上常用兩種解決辦法:

1) 重新mkfs,ext3預設block大小4096 bytes,block設定小一些inode數設定大一些

2) 使用loopback檔案系統臨時解決:

在/usr中(也可以在別處)建立乙個大檔案,然後做成loopback檔案系統,將原來的檔案移到這個

檔案系統中,並將它mount到/usr下合適的位置。這樣可以大大減少你/usr中的檔案數目。但是系統

效能會有點損失。

4. 測試目的: 開啟檔案數限制(檔案控制代碼、檔案描述符)

測試平台: rhel5u3_x64

ulimit -n 65535設定,或者/etc/security/limit.conf裡設定使用者開啟檔案數、程序數、cpu等

linux下檔案數 目錄數 檔名長度的各種限制

以下測試都是在沒有優化或修改核心的前提下測試的結果 1.測試目的 ext3檔案系統下filename最大字元長度 測試平台 rhel5u3 x64 測試過程 lenth for i in do for x in a do echo n x done done touch lenth 當增加到256時...

Windows下檔名或目錄的簡寫

經常碰到windows中的路徑變成這樣的形式 d ibm wcde e 1 一直以為這種路徑是隨機的,今天才發現原來這類路徑也是有效的,它其實是有縮寫規則的,美其名曰 dos 8.3命名規則 詳情可見微軟官方文件。這種命名規則簡單說來是用8個字元縮寫來代替檔案 或目錄 全名,對於目錄,可以寫頭六個字...

linux 統計當前目錄下檔案數

檢視當前目錄下檔案的個數 ls l grep wc l 檢視當前目錄下檔案的個數,包括子目錄裡的。ls lr grep wc l 檢視某目錄下資料夾 目錄 的個數,包括子目錄裡的。ls lr grep d wc l 簡要說明 ls l 長列表輸出該目錄下檔案資訊 注意這裡的檔案,不同於一般的檔案,可...