Я хочу знать, как я могу искать определенный тип файла: Я ввел сервер SSH, и я пытаюсь искать a .jpg
файл, но владелец сервера (мой учитель) удалил все расширения.
Я попробовал grep -lr "JFIF"
и я нашел много каталогов с тем же именем файла, таким образом, я вскочил в случайный каталог, который был найден с grep
команда и я пытались использовать cat
команда на нем, но терминал не могла показать весь двоичный файл.
Также strings
команда заблокирована на ssh сервере, мой учитель сказал, что необходимо найти jpg файл и что этот файл содержит порядковый номер (SN), но я понятия не имею, где найти его.
Если Вы, парни хотят кардиналов SSH, я буду рад выделить их Вам, так или иначе мой учитель, сказали, что можно использовать file
команда, чтобы сделать это, но я не знаю, как сделать это.
BTW: он сказал (SN)
В первую очередь, я хочу благодарить @incBrain и @Serg для того, чтобы не отвечать на мой вопрос непосредственно, который помог мне понять много новых вещей :).
Моя задача находила определенное .jpg
файл, который имеет, это - удаленное расширение, первая вещь I, хотя из .jpg
волшебный байт , который был JFIF
, и с @incBrain Инструкциями я смог создать эту команду
find / -exec file {} \; | grep "JFIF"
, что линейные тракты эти find
команда к file
команда с помощью -exec
затем получают вывод оба find
& file
команды и передача это как вход через символ вертикальной черты |
для эти grep
команда, которая показывает только файлы, которые содержат JFIF
в их двоичном файле иначе .jpg files
.
Моя проблема на самом деле находила определенный порядковый номер, сначала я, хотя это, порядковый номер включен в двоичный файл файла, но это было неправильно, затем сумасшедшее, хотя прибыл по моему мнению
, О! почему не делают я вижу то, на что похоже изображение, я имею в виду, не могу ли я найти, что порядковый номер, получая изображение был бы хорошей вещью
, и я искал Интернет хороший способ передать файлы от SSH в мою машину, и я нашел этот блок кода, который удался!
scp user@example.com:/home/example/file.txt /Local_Directory
я надеюсь, что этот ответ помогает кому-то в будущем :).
Я попытаюсь дать Вам некоторые подсказки, таким образом, можно будет решить HW сами.
Следуют, это ступает:
file
путем выполнения man file
. file somefile
и видят то, что происходит file
на различных типах файлов find
(или используйте Google, чтобы узнать, как использовать его для нахождения всех файлов в некотором каталоге, и все подкаталоги) -exec
опция find
для соединения его с ранее используемым file
команда |
и grep
команда, чтобы узнать, как отфильтровать только для файлов JPEG. Одно возможное решение могло быть этим: используйте 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
file * | grep -i "jpeg"
Это перероет каждый файл в каталоге и возвратится, это - тип файла. Через Канал |
эти результаты затем перерыты grep для нахождения файла с типом файла "jpeg" или в основном .jpg файла.