- Команда find в Linux – мощный инструмент сисадмина
- Поиск по имени
- Поиск по типу файла
- Поиск по размеру файла
- Единицы измерения файлов:
- Поиск пустых файлов и каталогов
- Поиск времени изменения
- Поиск по времени доступа
- Поиск по имени пользователя
- Поиск по набору разрешений
- Операторы
- Действия
- -delete
- Заключение
- How to Find Out File Types in Linux
- Linux file Command Examples
- If You Appreciate What We Do Here On TecMint, You Should Consider:
- Как определить тип файла файла с помощью Linux
- Найдите тип файла любого файла или группы файлов с помощью команды FILE
- Как работает команда File
- Как использовать команду «Файл»
- Настройте вывод из команды File
- Обработка нескольких файлов
- Сжатые файлы
Команда find в Linux – мощный инструмент сисадмина
Иногда критически важно быстро найти нужный файл или информацию в системе. Порой можно ограничиться стандартами функциями поиска, которыми сейчас обладает любой файловый менеджер, но с возможностями терминала им не сравниться.
Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:
- Дате добавления.
- Содержимому.
- Регулярным выражениям.
Данная команда будет очень полезна системным администраторам для:
- Управления дисковым пространством.
- Бэкапа.
- Различных операций с файлами.
Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.
Синтаксис команды find:
- directory-to-search (каталог поиска) – это отправной каталог, с которой find начинает поиск файлов по всем подкаталогам, которые находятся внутри. Если не указать путь, тогда поиск начнется в текущем каталоге;
- criteria (критерий) – критерий, по которым нужно искать файлы;
- action (действие) – что делать с каждым найденным файлом, соответствующим критериям.
Поиск по имени
Следующая команда ищет файл s.txt в текущем каталоге:
- . (точка) – файл относится к нынешнему каталогу
- -name – критерии по которым осуществляется поиск. В данном случае поиск по названию файла.
В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.
Для поиска всех изображений c расширением .png нужно использовать шаблон подстановки *.png:
Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:
Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.
Поиск по типу файла
Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:
- f – простые файлы;
- d – каталоги;
- l – символические ссылки;
- b – блочные устройства (dev);
- c – символьные устройства (dev);
- p – именованные каналы;
- s – сокеты;
Например, указав критерий -type d будут перечислены только каталоги:
Поиск по размеру файла
Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.
- «+» — Поиск файлов больше заданного размера
- «-» — Поиск файлов меньше заданного размера
- Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.
В данном случае поиск выведет все файлы более 1 Гб (+1G).
Единицы измерения файлов:
Поиск пустых файлов и каталогов
Критерий -empty позволяет найти пустые файлы и каталоги.
Поиск времени изменения
Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:
Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).
Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.
Поиск по времени доступа
Критерий -atime позволяет искать файлы по времени последнего доступа.
Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).
Поиск по имени пользователя
Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:
Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.
Поиск по набору разрешений
Критерий -perm – ищет файлы по определенному набору разрешений.
Поиск файлов с разрешениями 777.
Операторы
Для объединения нескольких критериев в одну команду поиска можно применять операторы:
Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:
Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.
Перед скобками нужно поставить обратный слеш «\».
Действия
К команде find можно добавить действия, которые будут произведены с результатами поиска.
- -delete — Удаляет соответствующие результатам поиска файлы
- -ls — Вывод более подробных результатов поиска с:
- Размерами файлов.
- Количеством inode.
- -print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам.
- -exec Выполняет указанную команду в каждой строке результатов поиска.
-delete
Полезен, когда необходимо найти и удалить все пустые файлы, например:
Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.
Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.
- command – это команда, которую вы желаете выполнить для результатов поиска. Например:
- rm
- mv
- cp
- <> – является результатами поиска.
- \; — Команда заканчивается точкой с запятой после обратного слеша.
С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:
Другой пример использования действия -exec:
Таким образом можно скопировать все .jpg изображения в каталог backups/fotos
Заключение
Команду find можно использовать для поиска:
- Файлов по имени.
- Дате последнего доступа.
- Дате последнего изменения.
- Имени пользователя (владельца файла).
- Имени группы.
- Размеру.
- Разрешению.
- Другим критериям.
С полученными результатами можно сразу выполнять различные действия, такие как:
- Удаление.
- Копирование.
- Перемещение в другой каталог.
Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.
Источник
How to Find Out File Types in Linux
The easiest way to determine the type of a file on any operating system is usually to look at its extension (for instance .xml, .sh, .c, .tar etc..). What if a file doesn’t have an extension, how can you determine its type?
Linux has a useful utility called file which carry out some tests on a specified file and prints the file type once a test is successful. In this short article, we will explain useful file command examples to determine a file type in Linux.
Note: To have all the options described in this article, you should be running file version 5.25 (available in Ubuntu repositories) or newer. CentOS repositories have an older version of file command (file-5.11) which lacks some options.
You can run following command to verify the version of file utility as shown.
Linux file Command Examples
1. The simplest file command is as follows where you just provide a file whose type you want to find out.
Find File Type in Linux
2. You can also pass the names of the files to be examined from a file (one per line), which you can specify using the -f flag as shown.
Find Files Type in Filename List
3. To make file work faster you can exclude a test (valid tests include apptype, ascii, encoding, tokens, cdf, compress, elf, soft and tar) from the list of tests made to determine the file type, use the -e flag as shown.
4. The -s option causes file to also read block or character special files, for example.
5. Adding the -z options instructs file to look inside compressed files.
Determine Compressed Files
6. If you want to report information about the contents only not the compression, of a compressed file, use the -Z flag.
7. You can tell file command to output mime type strings instead of the more traditional human readable ones, using the -i option.
8. In addition, you can get a slash-separated list of valid extensions for the file type found by adding the –extension switch.
For more information and usage options, consult the file command man page.
That’s all! file command is a useful Linux utility to determine the type of a file without an extension. In this article, we shared some useful file command examples. If you have any questions or thoughts to share, use the feedback form below to reach us.
If You Appreciate What We Do Here On TecMint, You Should Consider:
TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
We are thankful for your never ending support.
Источник
Как определить тип файла файла с помощью Linux
Найдите тип файла любого файла или группы файлов с помощью команды FILE
Большинство людей смотрят на расширение файла, а затем угадывают тип файла с этим расширением. Например, когда вы видите файл с расширением gif, jpg, bmp или png, вы думаете о файле изображения, а когда вы видите файл с расширением zip, вы предполагаете, что файл был сжат с помощью утилиты сжатия zip ,
В действительности, файл может иметь одно расширение, но быть чем-то совершенно другим. В Linux вы узнаете истинный тип файла с помощью команды file .
Как работает команда File
Команда file выполняет три набора тестов для файла:
- Тесты файловой системы
- Магические тесты
- Языковые тесты
Первый набор тестов для возврата правильного ответа приводит к печати типа файла.
Тесты файловой системы проверяют отдачу от системного вызова stat. Программа проверяет, является ли файл пустым и является ли он специальным файлом. Если тип файла найден в системном заголовочном файле, он возвращается как допустимый тип файла.
Магические тесты проверяют содержимое файла и, в частности, несколько байтов в начале, которые помогают определить тип файла. Различные файлы используются, чтобы помочь сопоставить файл с его типом файла, и они хранятся в:
Переопределите эти файлы, поместив файл в вашу домашнюю папку с именем $ HOME/.magic.mgc или $ HOME/.magic.
Финальные тесты – языковые тесты. Файл проверяется, чтобы увидеть, является ли он текстовым файлом. Тестируя первые несколько байтов файла, тест может определить, является ли файл ASCII, UTF-8, UTF-16 или другим форматом, который идентифицирует файл как текстовый файл. Когда выводится набор символов, файл проверяется на разных языках.
Если ни один из тестов не работает, выводом являются данные.
Как использовать команду «Файл»
Команда file может быть использована следующим образом:
Например, представьте, что у вас есть файл с именем file1, и вы запускаете следующую команду:
Вывод примерно такой:
Выходные данные определяют, что file1 – это файл изображения или, точнее, файл переносимой сетевой графики (PNG).
Различные типы файлов дают разные результаты:
- Тип файла ODS : электронная таблица OpenDocument
- Тип файла PDF : документ PDF, версия 1.4
- Тип файла CSV : текст ASCII, с очень длинными строками, с индикаторами строк CRLF
Настройте вывод из команды File
По умолчанию команда file предоставляет имя файла и все детали над файлом. Если вы хотите, чтобы только детали без имени файла повторялись, используйте следующий переключатель:
Вывод примерно такой:
Вы также можете изменить разделитель между именем файла и типом. По умолчанию в качестве разделителя используется двоеточие, но вы можете изменить его на что угодно, например на символ канала, следующим образом:
Вывод примерно такой:
Обработка нескольких файлов
По умолчанию вы используете команду file для одного файла. Однако вы можете указать имя файла, которое содержит список файлов, которые будут обработаны командой file.
Например, откройте файл с именем testfiles с помощью редактора nano и добавьте в него следующие строки:
Сохраните файл и выполните следующую команду:
Результат будет примерно таким:
- /etc/passwd: текст ASCII
- /etc/pam.conf: текст ASCII
- /etc/opt: каталог
Сжатые файлы
По умолчанию, когда вы запускаете команду file для сжатого файла, вы видите что-то вроде этого:
Хотя это говорит о том, что файл является архивом, вы не знаете его содержимого. Вы можете заглянуть внутрь zip-файла, чтобы увидеть типы файлов в сжатом файле. Следующая команда запускает команду file для файлов внутри ZIP-файла:
Вывод теперь показывает типы файлов файлов в архиве.
Большинство людей используют команду file, чтобы найти основной тип файла.Чтобы узнать больше о возможностях, которые предлагает команда file, введите в окне терминала следующее:
Эта команда открывает документацию по программному обеспечению Linux, включенную в систему.
Источник