Как перечислить только файлы JPEG от корня ниже использования командной строки?

Я имею просто элементарное знание Linux, но был бы та работа с получением pid создания через top и затем killлуг это?

4
26.03.2015, 01:09
3 ответа

Как начать, вы можете распечатать файлы с расширением файла .jpg с:

sudo find / -name *.jpg -print

см. Что ведет себя, изменить в соответствии с людьми, и вы можете затем выводить вывод в другую функцию, а не просто распечатать, если вы хотите. Например, если вы хотите разрешить .jpg также:

sudo find / -iname "*.jpg"
7
27.01.2020, 20:46

Если вы хотите перечислить файлы, содержащие изображение JPEG независимо от расширения в именем файле, вы можете использовать Find + файл , чтобы перечислить файлы с типом MIME / jpeg :

find . -type f -exec sh -c '
    file --mime-type "$0" | grep -q image/jpeg\$ && printf "$0\n"
' {} \;

или

find . -type f -exec sh -c '
    mt=$(file --brief --mime-type "$0")
    [ -z "${mt#image/jpeg}" ] && printf "$0\n"
' {} \;
7
27.01.2020, 20:46

Это выведет пути ко всем файлам с mime-типом image/jpeg.

find / -type f -exec file --no-pad --mime-type {} + 2>/dev/null \
    | awk '$NF == "image/jpeg" {$NF=""; sub(": $", ""); print}'

Несколько замечаний:

  • используйте -exec command {} + вместо -exec command {} \; , чтобы вызывать file только один раз (вместо одного раза для каждого файла)
  • используйте опцию --no-pad, чтобы убедиться, что вывод file имеет согласованный формат (для облегчения его разбора)
  • используйте 2>/dev/null для подавления stderr от find, только потому, что выполнение команды из / приведет к многочисленным ошибкам 'Permission denied', которые загромождают консоль
0
27.01.2020, 20:46

Теги

Похожие вопросы