列出特定子目录中的文件

列出特定子目录中的文件

我有一个这样的文件夹结构:

/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。特别是,您可能希望使用%P%f代替%p,或者%b使用 代替%s

[123]匹配 1-3 范围内的单个数字的名称;*如果您的示例与您试图描述的现实不完全对应,也许可以将其扩展为或进行更受限制的操作。

GNUfind应该是 CentOS 的标准,但如果您需要适当可移植的代码,也许可以使用find ... -exec stat {} \;(但请注意,它stat也存在可移植性问题;该命令应该存在于大多数平台上,但如何确切地让它打印特定内容因实现而异)。另一个选择是,find ... -ls但你会面临解析ls

如果您不需要遍历子目录,则不需要find

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

相关内容