2017-03-09 77 views
0

通過試驗和錯誤我發現下面的值可以通過stat "$somepath" --format '%F'返回:

  1. 定期文件

  2. 目錄

  3. 符號鏈接

我希望使用stat執行遞歸目錄內容操作,我希望確保能夠正確識別每種可能的文件類型。硬鏈接似乎表現得如我所設想的那樣,並且stat返回目標類型。

此信息未出現在我的man頁面;它只是說:%F file type

(並警告說,stat可能殼之間變化,那將是很好,如果這個特殊的用法是便攜式,但我主要專注於bash

是這份名單完全是stat允許在這種情況下根據執行環境或版本更改它生成的文本?

注:我不是知識淵博的關於Linux,文件系統或命令,所以我可能已經錯過了明顯的東西在這裏

回答

1

當心:統計的輸出約定基於不同版本的統計(來自不同的作者和歷史使用情況)以及相同統計的不同版本可以並且返回不同的輸出。

,我其實可以記得文件(因人而異)工作時看到的文件類型有:

  • 常規*文件(常規空文件是一個妙趣橫生,經常被忽視的區別)
  • 目錄
  • 符號鏈接
  • FIFO
  • 。*特殊文件
  • 插座
  • 信號量
  • 端口
  • 。*內存對象

一般來說,如果您關心文件是什麼,那麼使用您選擇的編程語言中的文件處理庫要好得多,因爲它將進行一些開發以便能夠準確識別文件;使用命令行和腳本是沒有做的事情

這裏的一個非常可靠的方法是一些鏈接,主要是GNU實現統計的,如果你想更深入:

GNU Findutils documentation

Old GNU Findutils documentation

Common file types

The man page is fairly uninformative as you suggest

GNU stat related source code

GNU file type related source code

相關問題