Linux: получить список файлов и каталогов вместе с информацией о mime

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

  1. Размер файлов в (удобочитаемом формате)
  2. Дата и время файлов (удобочитаемый формат)
  3. Имя файла без пути
  4. Mime файла (текстовый файл, файл изображения и т. д.)
  5. Возможное использование параметра maxdepth в find

я устал от этого

find /home/dojo50  -name "*" -exec file {} \;

Но ему не хватает размера файла и информации о дате и времени. Можно ли объединить File с ls в find .

что-то вроде, но не работает

find /home -name "*" -maxdepth 1  -exec ls -lh {} \; -exec file {} \;

person django    schedule 01.04.2014    source источник
comment
Это похоже на домашнее задание, но вы можете man find и посмотреть на вариант -printf для 1,2,3. Ваш пример уже должен работать для 4. Не уверен, что вы имеете в виду под 5.   -  person Reinstate Monica Please    schedule 01.04.2014
comment
Какова предполагаемая цель бита -name "*"? Как-то бессмысленно выглядит...   -  person twalberg    schedule 01.04.2014


Ответы (1)


для mime-type используйте команду file в опции -exec, а для другого элемента используйте опции -printf. как:

find * -printf "%kK %AD %AT %p " -exec file -b {} \;

см. man find для получения дополнительной информации.

person Taher Khorshidi    schedule 01.04.2014
comment
* здесь ошибка. Он будет обработан оболочкой, что не является большой проблемой, поскольку find может принимать список, но это будет зависеть от параметров оболочки относительно того, действительно ли она получит все файлы/каталоги в рабочем каталоге. - person Reinstate Monica Please; 01.04.2014
comment
Что говорит @BrowSlow. Это может быть, например. пропустите dotfiles и излишне замедляйте запрос, если у вас есть много файлов в каталоге, который необходимо сначала расширить. - person Adrian Frühwirth; 02.04.2014