Linux посмотреть атрибуты папки

Команда ls – просмотр атрибутов файлов

При взаимодействии с файловой системой (ФС) всегда приходится тесно работать с некоторой информацией, без которой системное администрирование (да и обычное использование системы) просто невозможно. Речь идёт об атрибутах файлов, а точнее об инструменте её получения — команде ls. Многие, даже опытные пользователи не придают ей особого значения — для большинства это просто команда «просмотра содержимого каталогов». Однако, команда ls обладает куда более широкими возможностями. Которые превозносят работу с ФС на качественно более высокий уровень. Поскольку она позволяет получать самые ценные сведения о ФС, что является ключом к пониманию того, как, собственно, функционирует вся система в целом. Если для кого-то это и может быть совсем неважно, но только не для администраторов UNIX/Linux.

Получение сведений о файлах и каталогах

Файловая система для каждого из своих базовых объектов (файлов и каталогов) хранит около четырёх десятков информационных полей. Подавляющее большинство из этих полей ФС использует для поддержания собственной работоспособности. По сути, когда пользователь работает с ФС, он просто использует любезно предоставленные самой же ФС возможности и информацию. При этом видит всё «как на ладони», всё как есть. Единственным скрытым (а точнее, «замаскированным») компонентом в представлении ФС является оборудование. Которое представлено теми же самыми файлами с соответствующими им свойствами и атрибутами.

Что представляет собой тот или иной файл, т. е. какой доступ к нему предоставлен, какими «связями» он обладает, когда был создан и/или изменён. А также многое другое, позволяет узнать команда ls с ключом -l. Когда нужно «навести справки» о каком-либо объекте ФС, использовать нужно именно её:

$ ls -l /bin/gzip -rwxr-xr-x 3 root root 101560 апр 28 2017 /bin/gzip

Нет необходимости подробно останавливаться на синтаксисе и перечисления всех доступных опций и их описании. Поскольку это простая справочная информация, доступная из соответствующего справочного руководства: man ls. А вот сам вывод команды из приведённого примера стоит рассмотреть более внимательно. Он разбит на секции, каждая из которых является отдельным атрибутом файла. В данном выводе в первой секции представлен режим доступа к файлу. Во второй — количество жёстких ссылок на данный файл. В третьей и четвертой — информация о владельце и группе. В данном случае root, к которым принадлежит файл. Следующая секция отображает размер файла в байтах. Далее следует дата последнего изменения файла — 28 апреля 2017 г., последняя секция — имя самого файла. Что касается каталогов, то для них всегда имеется как минимум две жесткие ссылки: первая — из родительского каталога, а вторая — это «псевдокаталог» «.» внутри самого этого каталога.

Читайте также:  Puppy linux live cd iso

Как правильно интерпретировать вывод команды ls?

Первое, что может ввести в заблуждение при изучении вывода команды ls -l, так это первая секция данных. Состоящая из набора десяти символов и показывающая режимы доступа к файлу. Для вышеприведённого примера первый символ «-» указывает, что это файл. А в случае с каталогом вместо него выводится символ «d». Следующие девять символов представляют собой три группы, отражающих режимы доступа к файлу. Первая группа (первые три символа «rwx») показывают, какие права доступа выставлены на данный файл для его владельца. Следующая группа символов — «r-x» — показывает режим доступа для группы, к которой принадлежит файл. Ну а третья («r-x») — права доступа для всех остальных пользователей.

В полях, отображающих владельца и группу вместо символьных имён могут быть также и цифровые идентификаторы. Такое бывает, когда соответствующие записи были удалены из файлов /etc/passwd или /etc/group. Также это может быть признаком возникновения ошибки в базах данных LDAP или NIS. Конечно, если таковые используются.

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

Особенности использования команды ls

Когда команда ls обрабатывает не «обычные» файлы, а специальные файлы устройств (хотя это тоже самые обычные файлы). То для них она выводит несколько иную информацию:

$ ls -l /dev/tty0 cr--w---- 1 root tty 4,0 фев 28 14:27 /dev/tty0

Вместо размера файла выводится старший и младший номера (4, 0) устройства tty0 – это первая виртуальная консоль, управляемая драйвером устройства 4, который является драйвером терминала.

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

$ ls -li ‘Рабочий стол’ 3276880 ‘Рабочий стол’

Номер индексного дескриптора — это индекс той самой таблицы, в которой содержатся записи всех файловых систем. В свою очередь, на дескрипторы ссылаются файловые записи каталогов. Таким образом, у жёстких ссылок, ссылающихся на один и тот же файл, будут одинаковые номера. Зная номер индексного дескриптора определённого файла, можно найти в системе все ссылающиеся на него жесткие ссылки, используя команду find:

$ find точка_монтирования -xdev -inum индексный_дескриптор

Данный пример — лишь одно из важных практических применений команды ls. Следует также отметить некоторые особенно полезные опции команды ls:

-a – отображает все файлы и каталоги. Включая скрытые (имена которых начинаются с точки), а также «всевдокаталоги» с именами «.» и «. .»;

-t – отображает результаты в отсортированном (по времени изменения файлов) порядке. А опция -tr то же, но в обратном порядке;

Читайте также:  More about kali linux

-F – выделяет каталоги и исполняемые файлы в общем выводе;

-h – отображает размеры файлов и каталогов в «человекопонятных» единицах, к примеру 4k или 10M;

-R – рекурсивный вывод, выполнение которого прерывается нажатием сочетания клавиш .

Иногда возникает путаница в использовании опций -l и —d. Дело в том, что опция -d предназначена для дополнения работы опции -l (которая выводит подробную информацию об атрибутах). Когда необходимо получить атрибуты именно конкретного каталога:

$ ls -ld ~/htdocs drwxrwxr-x 12 john john 4096 фев 11 12:56 /home/john/htdocs

Еще полезные примеры ls

Вывод файлов по дате изменения, вверху будут самые новые файлы

Вывод файлов по дате изменения, вверху будут самые старые файлы

Отсортировать файлы по размеру

Вывести список только каталогов:

Заключение

В заключении нужно отметить, что несмотря на кажущуюся незатейливость команды ls, она является базовым инструментом системного администратора для «исследования» паутины ФС. И если можно так выразиться, средством для понимания её скрытого порядка и принципов работы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

Источник

How to Show File Attributes in Linux

Linux provides us the access control by file and directory permissions on three levels which are user, group, and other. These file permissions provide the basic level of security and access control.

Linux also has advanced access control features like ACLs (Access Control Lists) and attributes. Attributes define the properties of files. This guide describes what these attributes are and how we can access them.

Attributes in Linux

Some filesystems support additional attributes (other than those described in the preceding sections). In particular, some Linux-native filesystems support several attributes that you can adjust with the chattr command. The files and directories can have the following attributes:

Define each file attributes

The detailed meaning of these attributes according to the manual page is:

  • a — append only: this attribute allows a file to be added to, but not to be removed. It prevents accidental or malicious changes to files that record data, such as log files.
  • c — compressed: it causes the kernel to compress data written to the file automatically and uncompress it when it’s read back.
  • d — no dump: it makes sure the file is not backed up in backups where the dump utility is used
  • e — extent format: it indicates that the file is using extents for mapping the blocks on disk.
  • i — immutable: it makes a file immutable, which goes a step beyond simply disabling write access to the file. The file can’t be deleted, links to it can’t be created, and the file can’t be renamed.
  • j — data journaling: it ensures that on an Ext3 file system the file is first written to the journal and only after that to the data blocks on the hard disk.
  • s — secure deletion: it makes sure that recovery of a file is not possible after it has been deleted.
  • t — no tail-merging: Tail-merging is a process in which small data pieces at a file’s end that don’t fill a complete block are merged with similar pieces of data from other files.
  • u — undeletable: When a file is deleted, its contents are saved which allows a utility to be developed that works with that information to salvage deleted files.
  • A — no atime updates: Linux won’t update the access time stamp when you access a file.
  • D — synchronous directory updates: it makes sure that changes to files are written to disk immediately, and not to cache first.
  • S — synchronous updates: the changes on a file are written synchronously on the disk.
  • T — and top of directory hierarchy: A directory will be deemed to be the top of directory hierarchies for the purposes of the Orlov block allocator.
Читайте также:  Линукс убунту чем лучше виндовс

How to list file attribute using lsattr command

Some Linux-native filesystems support several attributes that you can list with the lsattr command. To list attribute of files and sub-directory of the current directory, do

$ lsattr -----a-----------e- ./file1 ----i------------e- ./hello_dir -----------------e- ./usrcopy -----------------e- ./special_characters -----------------e- ./file3 -----------------e- ./contents -----------------e- ./hard_link -----------------e- ./usrlisting

Here we can see that the directory ‘hello_dir’ is immutable, and the file named ‘file1’ is append only file.

You can list the attribute of the contents of a particular directory with lsattr command followed with a file or directory name as the argument.

$ lsattr script-test/ -------------e-- script-test/password-gen.sh -------------e-- script-test/continue.sh -------------e-- script-test/hello -------------e-- script-test/folder1

As the ls -l command, the -d option with lsattr will list the attributes of the directory itself instead of the files in that directory.

$ # lsattr -d script-test/ -------------e-- script-test/

The -R option will list the attributes of a directory recursively. It means that it will show the attributes of the sub-directories’s contents

$ lsattr -R script-test/ -------------e-- script-test/password-gen.sh -------------e-- script-test/continue.sh -------------e-- script-test/hello -------------e-- script-test/folder1 script-test/folder1: ----i--------e-- script-test/folder1/file1

You can see that, it shows the attributes of the content of ‘folder1’ too

You can have the version of the program with the -V option

$ lsattr -V lsattr 1.42.9 (28-Dec-2013) -------------e-- ./jdk-8u65-linux-x64.tar.gz -------------e-- ./ttyrec-1.0.6-1.i586.rpm.1 -------------e-- ./bootstrap

Conclusion

Although there are quite a few attributes that can be used, you should be aware that most attributes are rather experimental and only of any use if an application is employed that can work with the given attribute.

If this resource helped you, let us know your care by a Thanks Tweet. Tweet a thanks

Источник

Оцените статью
Adblock
detector