我有多个子目录(使用 GUID 命名),其中包含我运行的计算机模拟的结果文件。这些文件都以以下方式命名:hydro_configuration_xxxx.xyz,其中 xxxx 是从 0000 向上的四位数字;最新文件具有最高的四位数字。我希望能够列出每个子目录中的最新文件以及它所在的目录。
因此,例如,给定子目录 fc86783b-bcc5-4456-8964-049682ee81aa 包含文件 hydro_configuration_0000.xyz 到 hydro_configuration_0123.xyz,目录 e608273d-35bd-442c-9de1-0ec184aa0d95 包含文件 hydro_configuration_0000.xyz 到 hydro_configuration_3564.xyz,我需要一个产生输出的命令:
./fc86783b-bcc5-4456-8964-049682ee81aa/hydro_configuration_0123.xyz
./e608273d-35bd-442c-9de1-0ec184aa0d95/hydro_configuration_3564.xyz
答案1
latestfile.sh
创建包含以下内容的bash 脚本:
#!/bin/bash
ls -1tr "$1" | tail -n1
运行chmod +x latestfile.sh
以使其可执行。
然后执行以下命令:
find test -mindepth 1 -type d -name "hydro_configuration_*" -printf "%p/" -a -exec ./latestfile.sh {} \;
这将找到所有与模式匹配的目录并打印它们的名称,后跟/
,然后是其中最新文件的名称。