3

Вот спецификации: Найти все файлы в / модифицированном после времени изменения / tmp / test, исключить / proc и / sys из поиска и распечатать полный путь к файлу вместе с читаемым человеком размером. Вот что у меня так далеко:

find / \( -path /proc -o -path /sys \) -prune -o -newer /tmp/test -exec ls -lh {} \; | less

Проблема в том, что полный путь не печатается. К сожалению, ls не поддерживает печать полного пути! И все решения, которые я нашел, которые показывают, как напечатать полный путь, предлагают использовать find. :|

Есть идеи? Спасибо!

2 ответа2

3

Вместо -exec ls -lh {} \; Вы также можете использовать опцию printf :

find / \( -path /proc -o -path /sys \) -prune -o -newer /tmp/test -printf "%s %p\n" | less

Хотя это будет просто печатать размер в байтах, а не в удобном для восприятия человеком формате, который поддерживает ls .

1

Добавьте -d к команде ls.

find / \( -path /proc -o -path /sys \) -prune -o -newer /tmp/test -exec ls -lhd {} \; | less

Это также устранит проблему, с которой вы должны были столкнуться при двойном отображении файлов в вашем списке.

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