2013-11-20 2 views
0

Мне нужно получить первые 3 файла, имеющие самую последнюю дату изменения подпапок каждой папки в основной папке.Получить последнюю дату изменения вложенных папок каждой папки в оболочке bash

Скрипт должен проходить через каждую подпапку указанной основной папки и отображать файлы, имеющие последнюю дату каждой подпапки основной папки.

Этот скрипт получает последнюю дату изменения папки, принимая во внимание все вложенные папки

find /path/ -exec stat \{} --printf="%n %y\n" \; | sort -n -r | head -3 

Но мне нужно итерации через подпапки основного-папки, чтобы получить список папок и имена файлов, имеющие самую раннюю дату изменения каждой папки.

for folder in MAINFOLDER 
do 
find ***folder*** exec stat \{} --printf="%n %y\n" \; | sort -n -r | head -1 
loop 

ответ

0

Нечто подобное?

#!/bin/bash 
for folder in MAINFOLDER/* 
do 
    find "$folder" -exec stat \{} --printf="%n %y\n" \; | sort -n -r | head -3 
done 
+0

Это именно то, что я хотел! Небольшая коррекция в скрипте должна быть: _find "$ folder" -exec stat \ {} --printf = "% n% y \ n" \; | sort -n -r | глава -3_ – magnum

+0

@magnum ах! в 'exec' отсутствовал' -'. на самом деле скопирован из вашего вопроса! Кажется, вы новичок в SO. Если какой-либо ответ сработал для вас, подумайте о том, чтобы принять его, нажав на полый зеленый галочку помимо ответа. – jkshah

Смежные вопросы