【问题标题】:Access file characteristics / attributes in bash loop在 bash 循环中访问文件特征/属性
【发布时间】:2018-12-29 20:13:53
【问题描述】:

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

这个示例代码我用来列出文件夹中的所有文件。

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

我需要做什么才能访问 $file 大小或日期?我注意到它不像 $file.size 和 $file.date 那样简单。

【问题讨论】:

  • 看看stat(1)。
  • 这取决于您希望查看的关联文件数据,但确实stat 可能是一个好的开始。
  • 这个问题将不同的事情混为一谈:访问文件属性,在 bash 脚本中打印一些文件属性,以及在 bash 中循环序列。

标签: bash loops filesize


【解决方案1】:

虽然你称它们为“文件”,但你得到的只是带有文件名的字符串。 在 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 可以是不同的命令。

【讨论】:

    猜你喜欢
    • 2013-08-18
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多