3

У меня есть дерево каталогов с множеством веток и деревьев. Однако на верхнем узле есть только пять каталогов, скажем, AE. Внутри дерева каталогов файлы обновляются случайным образом.

Я хотел бы иметь возможность получить список каталогов (то есть, как ls) с временем последнего изменения файла, которое включает в себя все подкаталоги и файлы в этом каталоге. В итоге я получу что-то вроде этого:

A 12 июня 08:00 B 13 июня 08:00 C 14 июня 08:00 D 15 июня 08:00 E 16 июня 08:00

Я пробовал варианты на ls -t , но это, похоже, не учитывает подкаталоги.

Там также что-то вроде этой find . -type f | xargs ls -tr , но я не вижу способа получить желаемый результат , используя это (примечание: я очень ограничен в своих знаниях Unix, как вы, вероятно, можете сказать).

2 ответа2

2

Используйте ls -clRt . Это рекурсивно и сортирует по последнему измененному времени.

0

Это может быть то, что вы ищете:

#!/bin/bash
for dir in A B C D E
do
    file=$dir
    while [[ -n $file ]]
    do
        prev=$file
        file=$(find $dir -newer $file -type f -print -quit)
    done
    mod=$(stat --format=%Y "$prev")
    echo "$dir $(date --date=@$mod '+%d %b %T')"
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .