關於文件系統的stat命令的一些問題
首先,我對shell命令完全一無所知。所以,請耐心等待。另外,我正在使用 OS X,但如果可能的話,我對 Unix 的一般性答案感到滿意。
我正在嘗試執行命令
stat -f [some parameters here] [volume name]
。根據其他地方的參考資料,這種形式的最簡單命令在
stat -f /dev/disk0s2
語法上是正確的。但是我有以下內容:stat -f /dev/disk0s2 /dev/disk0s2
例如,根據這裡(https://www.computerhope.com/unix/stat.htm),我應該得到一個充滿資訊的段落。就我而言,我最感興趣的是通過 stat 命令獲得的塊大小。
此外,這裡(https://apple.stackexchange.com/questions/42509/how-to-get-hfs-filesystem-blocksize)提到了參數“%k、%z、%b”。但是在 stat 手冊中(即通過使用
man stat
)我找不到這樣的參數。此外,我不知道為什麼在那裡使用引號(例如,我已經看到了stat -f %k
andstat -f "%k"
)。所以,總而言之,我有三個問題:
1)為什麼
stat -f /dev/disk0s2
沒有給我預期的輸出?
這些 %k、%z 和 %b 參數是什麼?手冊中是否提到了它們?
上述參數(例如,
stat -f %k
和stat -f "%k"
)周圍的引號是什麼意思?這是 Unix 命令語法中的通用內容嗎?提前致謝。
OS X 上預裝的命令行工具來自 FreeBSD,但許多線上指南可能會假設 Linux 環境和 GNU 工具。它們並不總是相同的。
比較FreeBSD stat和GNU stat的兩個手冊頁。在 FreeBSD 中,
-f
設置輸出格式並採用相應的參數。在 GNU 中,stat-f
詢問有關文件系統(不是命名文件)的輸出,並且不帶任何參數。因此,1) 結果不同,因為您使用的是不同的工具,2) FreeBSD 手冊頁的“格式”下提到了格式選項。3)引號與它本身並不真正相關
stat
,而是與外殼相關。?*[]
需要引用包含 shell 特殊字元(如空格或全域字元等)的命令行參數,以防止shell處理它們。但是%
並不特別(至少在那種情況下不是),所以它是否被引用並不重要。