Информация о файлах

Информация о файлах

Наиболее универсальным средством получения практически исчерпывающей информации о файлах является команда ls. Однако для этой цели существуют и другие команды.

Общая форма запуска команды ls —

$ ls [options] names

где в качестве аргумента names могут выступать имена файлов или каталогов в любом количестве. Команда эта имеет многочисленные опции, основные из которых мы и рассмотрим.

Начать с того, что команда ls, данная без всяких опций, по умолчанию выводит только имена файлов, причём опуская т.н. dot-файлы, имена которых начинаются с точки (это — некие аналоги скрытых файлов в MS DOS и Windows). Кроме того, если в качестве аргумента указано имя каталога (или аргумент не указан вообще, что подразумевает текущий каталог), из списка имен его файлов не выводятся текущий (.) и родительский (..) каталог.

Для вывода всех без исключения имен файлов (в том числе и скрытых) предназначена опция -a. Смысл опции -A близок — она выводит список имен всех файлов, за исключением символов текущего (.) и родительского (..) каталога.

Кроме имени, любой файл идентифицируется своим номером inode. Для его вывода используется опция -i:

$ ls -i

12144 content.html

и так далее. Как и многие другие, команда ls обладает способностью рекурсивной обработки аргументов, для чего предназначена опция -R, выводящая список имен файлов не только текущего каталога, но и всех вложенных подкаталогов:

$ ls -R

unixforall:

about/  apps/     diffimages/  distro/  signature.html  sys/

anons/  content/  difftext/    gentoo/  statistics/     u4articles/

 

unixforall/about:

about_lol.html  about_lol.txt  index.html

 

unixforall/anons:

anons_dc.html

Опция же -d, напротив, запрещает вывод содержимого вложенных подкаталогов.

В выводе команды ls по умолчанию имена файлов разных типов даются абсолютно одинаково. Для их визуального различия используется опция -F, завершающая имена каталогов символом слэша, исполнимых файлов — символом звездочки, символических ссылок — «собакой»; имена регулярных файлов, не имеющих атрибута исполнения, никакого символа не включают:

$ ls -F

dir1/   dir2/   dir3@   file1   file2*  file3@

Другое средство для визуального различия типов файлов — колоризация, для чего применяется опция -G. Цвета шрифта, воспроизводящего имена, по умолчанию — синий для каталогов, лиловый (magenta) для символических ссылок, красный — исполнимых файлов, и так далее. Для файлов устройств, исполнимых файлов с атрибутом «суидности», каталогов, имеющих атрибут sticky, дополнительно колоризуется и фон, на котором выводится шрифта, воспроизводящий их имена. Подробности можно посмотреть в секции ENVIRONMENT man-страницы для команды ls. Впрочем, колоризация работает не на всех типах терминалов (и не во всех командных оболочках).

По умолчанию команда ls выводит список файлов в порядке ASCII-кодов первого символа имени. Однако есть возможность его сортировки в порядке времени модификации (-t), изменения статуса (-c) или времени доступа (-tu), а также в порядке, обратном любому из перечисленных (-r). Кроме того, опция -f отменяет какую-либо сортировку списка вообще.

Информацию об объёме файлов можно получить, используя опцию -s, выводящую для имени каждого файла его размер в блоках, а также суммарные объём всех выведенных файлов:

$ ls -s ../book

total 822

656 book.html

4 content1.html

86 var_part2.html

24 command.html

38 part2.html

6 command.txt

8 shell_tmp.html

Добавление к опции -s ещё и опции -k (то есть ls -sk) выведет всю ту же информацию в килобайтах.

Как можно видеть из всех приведённых выше примеров, списки файлов по команде ls выводится в многоколоночном виде (чему соответствует опция -C, однако указывать ее нет необходимости — многоколоночный вид принят для краткого формата по умолчанию). Но можно задать и одноколоночное представление списка посредством опции -1:

$ ls -1

dir1

dir2

dir3

file1

file2

file3

До сих пор речь шла о кратком формате вывода команды ls. Однако более информативным является т.н. длинный ее формат, вывод в котором достигается опцией -l и автоматически влечет за собой одноколоночное представление списка:

$ ls -l

total 8

drwxr-xr-x  2 alv  alv  512  8 май 18:04 dir1

drwxr-xr-x  3 alv  alv  512  8 май 17:43 dir2

lrwxr-xr-x  1 alv  alv    4  9 май 07:59 dir3 -> dir2

-rw-r--r--  1 alv  alv   14  8 май 10:39 file1

-rwxr-xr-x  1 alv  alv   30  9 май 08:02 file2

lrwxr-xr-x  1 alv  alv    2  8 май 10:57 file3 -> f1

Можно видеть, что по умолчанию в длинном формате выводятся:

   • сведения о типе файла (- — регулярный файл, d — каталог, l — символическая ссылка, c — файл символьного устройства, b — файл блочного устройства) и атрибуты доступа для различных атрибутов принадлежности (о чем было сказано достаточно);

   • количество жёстких ссылок на данный идентификатор inode;

   • имя пользователя — владельца файла, и группы пользователей, которой файл принадлежит;

   • размер файла в блоках;

   • время модификации файла с точностью до месяца, дня, часа и минуты (в формате, принятом в данной locale);

   • имя файла и (для символических ссылок) имя файла-источника.

Однако это ещё не всё. Добавив к команде ls -l ещё и опцию -i, можно дополнительно получить идентификатор inode каждого файла, опция -n заменит имя владельца и группу на их численные идентификаторы (UID и GUID, соответственно), а опция -T выведет в поле времени модификации ещё и годы, и секунды:

$ ls -linT

total 8

694402 drwxr-xr-x  2 1000  1000  512  8 май 18:04:56 2002 dir1

694404 drwxr-xr-x  3 1000  1000  512  8 май 17:43:31 2002 dir2

673058 lrwxr-xr-x  1 1000  1000    4  9 май 07:59:08 2002 dir3 -> dir2

673099 -rw-r--r--  1 1000  1000   14  8 май 10:39:38 2002 file1

673059 -rwxr-xr-x  1 1000  1000   30  9 май 08:02:23 2002 file2

673057 lrwxr-xr-x  1 1000  1000    2  8 май 10:57:07 2002 file3 -> f1

Разумеется, никто не запрещает использовать в длинном формате и опции визуализации (-F и -G), и опции сортировки (-r, t, tu), и любые другие, за исключением опции -C — указание ее ведет к принудительному выводу списка в многоколоночной форме, что естественным образом подавляет длинный формат представления.

Я столь подробно остановился на описании команды ls потому, что это — основное средство визуализации файловых систем любого Unix, при умелом использовании ничуть не уступающее развитым файловым менеджерам (типа Midnight Commander или Konqueror) по своей выразительности и информативности. И отнюдь не требующее для достижения таковых вбивания руками многочисленных опций: со временем будет показано, что соответствующей настройкой последних можно добиться любого «умолчального» вывода команды ls.

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

   • исполняемые бинарные файлы с указанием их формата (например, ELF), архитектуры процессора, для которых они скомпилированы, характер связи с разделяемыми библиотеками (статический или динамический);

   • исполняемые сценарии с указанием оболочки, для которой они созданы;

   • текстовые и html-документы, часто с указанием используемого набора символов.

Последнему, впрочем, для русскоязычных документов доверять особо не следует: кодировка KOI8-R в них вполне может быть обозвана ISO-8859.

Определяет она также каталоги, символические ссылки, специальные файлы устройств, указывая для последних старшие и младшие номера устройств.

Наконец, команда stat (это — встроенная команда оболочки), с именем файла в качестве аргумента, выводит большую часть существенных сведений о файле в удобном для восприятия виде, например, включая идентификатор inode, режим доступа (в символьной форме), идентификаторы владельца и группы, временные атрибуты, количество жёстких и символических ссылок.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Что нужно знать о файлах?

Из книги Новейший самоучитель работы на компьютере автора Белунцов Валерий

Что нужно знать о файлах? В современных компьютерах на жестких дисках, а также на других накопителях и носителях информации обычно находится одновременно много различных данных, представленных в двоичном коде. Для доступа к информации (например, чтобы прочитать текст,


19.2.3.5. Проверяйте орфографию в документации и README-файлах перед выпуском версии

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

19.2.3.5. Проверяйте орфографию в документации и README-файлах перед выпуском версии Проверяйте грамотность документации, README-файлов и сообщений об ошибках в программе. Сырой код, т.е. код, который вызывает появление сообщений об ошибках при компиляции и имеет орфографические


Глава 6 Практическая работа с данными в XML-файлах

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Глава 6 Практическая работа с данными в XML-файлах В главе 3 мы уже кратко описывали основные принципы языка XML, которые необходимы для понимания объектной модели сценариев WS XML. В настоящее время применение XML становится все более широким, поэтому настоящая глава посвящена


59. Не используйте using для пространств имен в заголовочных файлах или перед директивой #include

Из книги Стандарты программирования на С++. 101 правило и рекомендация автора Александреску Андрей

59. Не используйте using для пространств имен в заголовочных файлах или перед директивой #include РезюмеДиректива using для пространств имен создана для вашего удобства, а не для головной боли других. Никогда не используйте объявления или директивы using перед директивой #include.Вывод:


5.2 Немного о файлах и каталогах

Из книги Руководство по переходу на Ubuntu 10.04 LTS «Lucid Lynx» автора Неворотин Вадим

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


5.4. Получение информации о файлах

Из книги Linux программирование в примерах автора Роббинс Арнольд

5.4. Получение информации о файлах Чтение каталога для получения имен файлов лишь половина дела. Получив имя файла, нужно знать, как получить остальную информацию, связанную с файлом, такую, как тип файла, права доступа к нему, владельца и


18.8.4. Пропуск строк в файлах

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

18.8.4. Пропуск строк в файлах Рассмотрим файл, содержащий перечень сотрудников. Этот файл уже использовался ранее, но теперь он будет включать некоторую заголовочную информацию.$ pg names2.txtLISTING OF PERSONNEL FILE TAKEN AS AT 06/1999Louise Conrad:Accounts:ACC8987 Peter James:Payroll:PR489 Fred Terms:Customer:CUS012 Janes Lenod:Accounts:ACC887


12.6. Сохранение объектов в файлах

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

12.6. Сохранение объектов в файлах Постановка задачи Вы добавили в ваш проект новый класс и теперь хотите сохранить этот объект на диск в виде файла, а потом в случае необходимости считать этот файл с


8.2.2. Сопоставление объявлений в разных файлах

Из книги C++ для начинающих автора Липпман Стенли

8.2.2. Сопоставление объявлений в разных файлах Одна из проблем, вытекающих из возможности объявлять объект или функцию в разных файлах, – вероятность несоответствия объявлений или их расхождения в связи с модификацией программы. В С++ имеются средства, помогающие


8.2.3. Несколько слов о заголовочных файлах

Из книги Как заработать в Интернете. 35 самых быстрых способов автора Фомина Ольга

8.2.3. Несколько слов о заголовочных файлах Заголовочный файл предоставляет место для всех extern-объявлений объектов, объявлений функций и определений встроенных функций. Это называется локализацией объявлений. Те исходные файлы, где объект или функция определяется или


13. Зарабатываем на своих файлах: файлообменники, загружаеми получаем процент за скачивание

Из книги UNIX — универсальная среда программирования автора Пайк Роб

13. Зарабатываем на своих файлах: файлообменники, загружаеми получаем процент за скачивание Файлообменник – это особая служба – сайт, на каком всякий имеет возможность закачать всякий файл. Он сможет легко скачать его там или дать приятелю ссылку для скачивания. Но


2.1 Основные сведения о файлах

Из книги Linux Mint и его Cinnamon. Очерки применителя автора Федорчук Алексей Викторович

2.1 Основные сведения о файлах Файл представляет собой последовательность байтов. (Байт — небольшая порция информации, обычно размером в восемь бит. Для наших целей можно считать байт синонимом слова "символ".) Никаких ограничений по структуре системой на файл не


Информация о файлах

Из книги автора

Информация о файлах Наиболее универсальным средством получения практически исчерпывающей информации о файлах является команда ls. Однако для этой цели существуют и другие команды.Общая форма запуска команды ls —$ ls [options] names где в качестве аргумента names могут выступать