Вот различные примеры использования команды file в Linux для определения фактического типа файла и сбора соответствующей информации.
Вы видели команды для создания файла в Linux. Вы также видели команду для удаления файла в Linux. Давайте поговорим о команде file в этой статье.
Что такое команда file в Linux и Unix?
Как вы узнаете тип файла? Позвольте мне догадаться, по его расширению, верно? Мы имеем в виду, если вы видите файл с именем MyData.csv, вы думаете, что файл в формате CSV.
Но расширения файлов в Linux и Unix не имеют реального значения. Вы можете назвать CSV-файл, ZIP-файл. Вы можете не использовать расширение вообще.
Команда file пригодится в таких ситуациях. Команда file в Linux определяет фактический тип файла, независимо от его расширения.
Он имеет простой синтаксис с несколькими опциями:
file [option] filename
Теперь, когда вы знаете синтаксис, давайте посмотрим, как использовать команду file.
Пример команды file в Linux
В простейшем виде вы можете использовать команду file с именем файла или путем к файлу, и он покажет тип файла.
file filename
Вот пример:
destroyer@andreyex: ~ / $ file cpluplus.cpp
cpluplus.cpp: C++ source, ASCII text
Давайте посмотрим, как можно использовать его с его параметрами.
Удалить имя файла из вывода
Вы можете использовать опцию -b, и в выходных данных будет показан только тип файла без имени файла. Это может быть полезно при написании сценариев.
file -b filename
Взгляните на тот же пример, который вы видели ранее:
destroyer@andreyex:~/$ file -b cpluplus.cpp
C++ source, ASCII text
Получить MIME-тип файла
Вы также можете отобразить MIME-тип файла благодаря опции -i.
file -i filename
Вот пример команды для видеофайла с информацией о типе MIME и без нее:
destroyer@ andreyex:~/$ file my_video.mp4
my_video.mp4: ISO Media, MP4 v2 [ISO 14496-14]
destroyer@ andreyex:~/$ file -i my_video.mp4
my_video.mp4: video/mp4; charset=binary
Вы можете комбинировать опции -b и -i.
Получить информацию о типе файла в файле архива
Если вы распаковали каталог и теперь у вас есть сжатый файл. Вы можете проверить несжатое содержимое, чтобы определить тип файла с опцией -z.
file -z compressed_file
Позвольте нам показать вам пример с опцией -z и без нее:
destroyer@ andreyex:~/$ file author-pro.zip
author-pro.zip: Zip archive data, at least v2.0 to extract
destroyer@ andreyex:~/$ file -z author-pro.zip
author-pro.zip: PHP script, ASCII text (Zip archive data, at least v2.0 to extract)
Используйте команду file с несколькими файлами
Файловая команда может быть запущена для нескольких файлов одновременно.
file file1 file2 file3
Вот пример для вас, чтобы вы могли увидеть это в действии:
destroyer@ andreyex:/$ file cpluplus.cpp andreyex.txt bash_script.sh
cpluplus.cpp: C++ source, ASCII text
andreyex.txt: ASCII text
bash_script.sh: Bourne-Again shell script, ASCII text executable
Используйте команду file с регулярным выражением
Если вы хотите использовать команду file для нескольких файлов, вам не всегда нужно указывать все имена файлов. Вы можете использовать регулярные выражения вместо.
Это действительно зависит от ваших требований и воображения, как вы могли бы использовать его. Я покажу несколько примеров.
Если вы хотите отобразить тип файла всех файлов в текущем каталоге, просто используйте это:
file *
Если вы хотите отобразить тип файла для всех файлов с определенным расширением, вы также можете сделать это:
file *.txt
Возможности безграничны. Хотите отобразить тип файла с именем, начинающимся с ‘a’? Использовать этот:
file [a]*
Другие параметры, которые вы можете использовать с командой file
Вот несколько других опций с командой file, которые вы можете использовать:
- -L: переходить по символическим ссылкам и сообщать тип файла назначения
- -f file_name: читать имена файлов построчно из заданного имени файла и сообщать об их типе файла
Есть и несколько других вариантов, но мы думаем, что вы изучили все основные примеры файловой команды Linux. Если у вас есть вопросы или предложения, дайте нам знать в разделе комментариев.