2013-03-22 21 views
3

我有一個包含大量文件(高於4.000.000個文件)的目錄。所有的文件名有同樣的模式:類似Linux中的.htaccess

PREFIX-XXXXXX-YY.ext 

其中

  • XXXXXX包含字母和數字
  • YY包含數字
  • ext是文件的擴展名(txt文件,JPG格式)

文件結構有12MB​​,所以列表/搜索此目錄的興趣需要很長時間。我把這個目錄的所有內容都分成了子目錄,取決於文件名,從上面的模式中得到了第一個字母XXXXXX

即。

  • main_directory/A/PREFIX-AXXXXX-YY.ext
  • main_directory/B/PREFIX-BXXXXX-YY.ext
  • main_directory/1/PREFIX-1XXXXX-YY.ext

是在Linux下簡單的方式讓一個規則,當我在Linux命令例如

鍵入
test:/home/usr/admin # ls main_directory/PREFIX-AXXXXX-* 

我會得到一個來自main_directory/A /目錄的文件名列表?此規則必須僅適用於main_directory

回答

1

你不能在文件系統層有這個,不是沒有創建鏈接並回到原來的問題。我可以想出兩個簡單的方法。

採取1:腳本

你可以寫一個簡短的腳本來重寫名稱爲您服務。

假設您有一個rewrite腳本,其執行PREFIX-AXXXX-*並輸出main_directory/A/PREFIX-AXXXX-*。然後,您可以將您的ls行更改爲:

$ ls `rewrite PREFIX-AXXXXX-*` 

這可以用sedawk或任何其他的即時文本轉換工具很容易地完成。

殼程序是可組合的原因! :)

以2:嵌入更快的文件系統

你可以做掉與重組和使用更快的文件系統,安裝在你的主目錄重寫名。 聽起來不錯。它應該毫不猶豫地消除您的性能問題。

但是,這需要更深入地瞭解什麼是有效的日常使用。

編輯Here是關於如何創建虛擬用戶空間文件系統的文章。

編輯2:其實不,我不認爲XFS會削減它。也許是另一個文件系統。

相關問題