Одним из возможных решений может быть следующее: use find, который рекурсивно перечисляет обычные файлы (-type f) и выполняет команду file для каждого из них. Перенесите вывод в grep, чтобы отфильтровать типы файлов.
Однако здесь я хотел бы сделать что-то более интересное;
$ find . -maxdepth 1 -type f -printf "%f\t" -exec hexdump -n8 {} \; | awk '/d8ff e0ff 1000 464a/{print $1}'
Поскольку вы можете или не знать, что каждый файл имеет первые 8 байтов любого файла, обозначающий тип файла. Таким образом, используя find, мы ищем все обычные файлы, печатаем его имя, но затем выполняем hexdump для извлечения первых 8 байтов, и пусть awk фильтрует только те имена файлов, у которых эти первые 8 байтов.
Вот небольшое доказательство:
$ hexdump -n 10 1450763029649.jpg
0000000 d8ff e0ff 1000 464a 4649
000000a
$ hexdump -C -n 10 1450763029649.jpg
00000000 ff d8 ff e0 00 10 4a 46 49 46 |......JFIF|
0000000a
У вас есть пять вариантов. Вам нужно будет решить, какие критерии (LTS, безопасные, легкие, быстрые) важнее - ни один из них не отвечает всем:
Подождите 18.04 LTS. Это безопасно, но это не устраняет вашу проблему. Установите 17.04 или 17.10 (не-LTS). Это также безопасно, но вам, похоже, не нравится этот. Отправьте сообщение «Стабильный выпуск обновлений» на Launchpad, чтобы получить исправление с резервным копированием до 16.04. Это достаточно безопасно - SRUs хорошо протестированы. SRUs требуют времени и могут быть полностью отвергнуты разработчиками. Попробуйте установить пакет systemd из более новой версии Ubuntu. Это почти наверняка небезопасно и опасно нарушает вашу систему. Научитесь компилировать systemd и установить более новую версию. Это требует большого мастерства и терпения, чтобы поступать правильно. Много, много возможностей для поломки и разочарования, небезопасно вообще, если у вас нет многолетнего опыта компиляции и инициализации.У вас есть пять вариантов. Вам нужно будет решить, какие критерии (LTS, безопасные, легкие, быстрые) важнее - ни один из них не отвечает всем:
Подождите 18.04 LTS. Это безопасно, но это не устраняет вашу проблему. Установите 17.04 или 17.10 (не-LTS). Это также безопасно, но вам, похоже, не нравится этот. Отправьте сообщение «Стабильный выпуск обновлений» на Launchpad, чтобы получить исправление с резервным копированием до 16.04. Это достаточно безопасно - SRUs хорошо протестированы. SRUs требуют времени и могут быть полностью отвергнуты разработчиками. Попробуйте установить пакет systemd из более новой версии Ubuntu. Это почти наверняка небезопасно и опасно нарушает вашу систему. Научитесь компилировать systemd и установить более новую версию. Это требует большого мастерства и терпения, чтобы поступать правильно. Много, много возможностей для поломки и разочарования, небезопасно вообще, если у вас нет многолетнего опыта компиляции и инициализации.