linux - 如何列出包含文件的所有子目录

标签 linux file shell directory

我必须完成以下任务:

对于给定的文件名列表和给定的目录,为每个文件名打印它出现的所有子目录。子目录将根据文件的创建日期以降序打印。

我不知道该怎么做

最佳答案

for file in $(< filelist) 
do 
    find -name "$file" -printf "%C@ %h\n" | sort -rn | sed 's/^[0-9.]* //'
done 
  • $(
  • printf %C@ 打印自 1.1.1970 以来的秒数
  • %h 打印没有文件名的前导目录
  • sort -n 对数值进行排序,-r 倒序
  • sed 删除排序后的时间

问题:

  • 从这个问题来看,没有迹象表明要打印文件名本身,这对于现实世界的场景来说是不寻常的。这很容易解决。
  • 带有换行符的路径名以及其他奇特字符(如垂直制表符、换页符等)处理不当。

关于linux - 如何列出包含文件的所有子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663025/

相关文章:

linux - libpcap 是通过 socket API 实现的吗?

java - 将文件类型与 Java Swing 应用程序相关联

文件处理程序的限制跨越 256

linux - module_platform_driver初始化顺序

c++ - Eclipse CDT 无法识别 <iostream>

linux - 如何为 Elastic Beanstalk 上的特定容器设置文件夹权限

java - 提取歌曲的标签

linux - 如何在 ash shell 中保持程序在后台运行

bash - 使用 read 命令解析 linux shell 脚本中的 du -s 输出

shell - 测试 POSIX shell 合规性?