在 bash 循环中访问文件特征/属性

Access file characteristics / attributes in bash loop

我正在学习有关 bash 脚本的更多信息。当循环访问目录中的文件时,我希望能够回显的不仅仅是文件名。如何访问关联的文件数据?

此示例代码用于列出文件夹中的所有文件。

for file in .* *; do echo "$file"; done

我需要添加什么才能访问 $file 大小或日期?我注意到它不像 $file.size 和 $file.date.

那样简单

虽然你称它们为"file",但你得到的只是带有文件名的字符串。 在 for 循环的每次迭代中,您可以将 $file 与其他命令(例如 "stat" 或 "ls -l")一起使用,以提取有关文件的信息,然后您必须解析其输出(使用"awk" 或 "sed").

所以解决方案是:

for file in .* *; do COMMAND_TO_GET_INFO "$file" | COMMAND_TO_PARSE_OUTPUT ; done

其中 COMMAND_TO_GET_INFO 和 COMMAND_TO_PARSE_OUTPUT 可以根据您的需要使用不同的命令。