列出特定子目錄中的文件

列出特定子目錄中的文件

我有一個像這樣的資料夾結構:

/1/a/x
/1/b/y
/2/a/z
/2/b/d
/3/a/r
/3/b/e

我想列出“a”資料夾中子資料夾中所有文件的文件+文件大小。我嘗試過使用 find 但被卡住了。正確的命令是什麼?

答案1

若要列印尺寸和完整路徑,請嘗試此操作。

find /[123]/a/* -type f -printf '%s %p\n'

man find對於其他格式字串,您可以使用-printf.特別是,您可能想要%Por%f代替%p,也許%b代替%s

[123]符合 1-3 範圍內的單一數字的名稱;如果您的範例與您試圖描述的現實不完全一致,也許可以將其擴展到*或更受限制的東西。

GNUfind應該是 CentOS 上的標準,但如果您需要適當的可移植程式碼,也許可以使用find ... -exec stat {} \;(但請注意,它stat也存在可移植性問題;該命令應該存在於大多數平台上,但如何準確地讓它列印特定的內容因實現而異)。另一個選擇是find ... -ls,但你會面臨解析ls.

如果不需要遍歷子目錄,則不需要find.

stat -c '%s %n\n' /[123]/a/*/*

相關內容