MST

星途 面试题库

面试题:Bash查找排序在动态环境下的优化

在一个不断有新文件生成的目录中(文件类型有txt、csv、log等),实时查找出最近24小时内修改过的所有文件,并按照文件的修改时间先后排序,将排序结果输出到一个日志文件中,同时考虑性能优化,避免资源过度消耗,用Bash脚本实现。
23.5万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 定义日志文件路径
log_file="sorted_files.log"

# 查找最近24小时内修改过的文件,并按修改时间排序
find /path/to/directory -type f -mmin -1440 -name "*.txt" -o -name "*.csv" -o -name "*.log" | sort -t$'\t' -k1nr > $log_file

说明:

  1. find /path/to/directory -type f -mmin -1440:在指定目录(将/path/to/directory替换为实际目录路径)中查找文件类型为普通文件且在最近1440分钟(24小时)内修改过的文件。
  2. -name "*.txt" -o -name "*.csv" -o -name "*.log":只筛选出txtcsvlog类型的文件。
  3. sort -t$'\t' -k1nr:按文件修改时间从新到旧排序(以制表符为分隔符,按第一列数字逆序)。
  4. > $log_file:将结果输出到指定的日志文件$log_file中。