MST

星途 面试题库

面试题:Bash中查找与排序命令的组合运用

在一个存有大量日志文件的目录下,日志文件命名格式为log_YYYYMMDD.log 。现在需要找出文件名中日期为20230101之后(包含)的日志文件,并按照文件大小从大到小排序显示文件路径及大小,用Bash命令实现。
40.1万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
find . -name 'log_20230101*.log' -type f -printf '%s %p\n' | sort -nr | awk '{print $2, $1}'

上述命令解释:

  1. find . -name 'log_20230101*.log' -type f:在当前目录(.)及其子目录下查找文件名匹配log_20230101*.log且类型为文件(-type f)的日志文件。
  2. -printf '%s %p\n':以文件大小 文件路径的格式输出,%s表示文件大小(字节数),%p表示文件路径。
  3. sort -nr:对输出结果按文件大小进行降序(-n按数字排序,-r逆序)排序。
  4. awk '{print $2, $1}':重新调整输出格式,使其以文件路径 文件大小的格式显示。