Переменные среды BASH

Возвращает true если:

-e
файл существует

-f
обычный файл (не каталог и не файл устройства)

-s
ненулевой размер файла

-d
файл является каталогом

-b
файл является блочным устройством (floppy, cdrom и т.п.)

-c
файл является символьным устройством (клавиатура, модем, звуковая карта и т.п.)

-p
файл является каналом

-h
файл является символической ссылкой

-L
файл является символической ссылкой

-S
файл является сокетом

-t
файл (дескриптор) связан с терминальным устройством

Этот ключ может использоваться для проверки — является ли файл стандартным устройством ввода stdin ([ -t 0 ]) или стандартным устройством вывода stdout ([ -t 1 ]).

-r
файл доступен для чтения (пользователю, запустившему сценарий)

-w
файл доступен для записи (пользователю, запустившему сценарий)

-x
файл доступен для исполнения (пользователю, запустившему сценарий)

-g
set-group-id (sgid) флаг для файла или каталога установлен

Если для каталога установлен флаг sgid, то файлы, создаваемые в таком каталоге, наследуют идентификатор группы каталога, который может не совпадать с идентификатором группы, к которой принадлежит пользователь, создавший файл. Это может быть полезно для каталогов, в которых хранятся файлы, общедоступные для группы пользователей.

-u
set-user-id (suid) флаг для файла установлен

Установленный флаг suid приводит к изменению привилегий запущенного процесса на привилегии владельца исполняемого файла. Исполняемые файлы, владельцем которых является root, с установленным флагом set-user-id запускаются с привилегиями root, даже если их запускает обычный пользователь. [16] Это может оказаться полезным для некоторых программ (таких как pppd и cdrecord), которые осуществляют доступ к аппаратной части компьютера. В случае отсутствия флага suid, программы не смогут быть запущены рядовым пользователем, не обладающим привилегиями root.

-rwsr-xr-t 1 root 179336 Oct 1 2000 /usr/sbin/pppd
Файл с установленным флагом suid отображается с включенным флагом s в поле прав доступа.

-k
флаг sticky bit (бит фиксации) установлен

Общеизвестно, что флаг «sticky bit» — это специальный тип прав доступа к файлам. Программы с установленным флагом «sticky bit» остаются в системном кэше после своего завершения, обеспечивая тем самым более быстрый запуск программы. [17] Если флаг установлен для каталога, то это приводит к ограничению прав на запись. Установленный флаг «sticky bit» отображается в виде символа t в поле прав доступа.

drwxrwxrwt 7 root 1024 May 19 21:26 tmp/
Если пользователь не является владельцем каталога, с установленным «sticky bit», но имеет право на запись в каталог, то он может удалять только те файлы в каталоге, владельцем которых он является. Это предотвращает удаление и перезапись «чужих» файлов в общедоступных каталогах, таких как /tmp.

-O
вы являетесь владельцем файла

-G
вы принадлежите к той же группе, что и файл

-N
файл был модифицирован с момента последнего чтения

f1 -nt f2
файл f1 более новый, чем f2

f1 -ot f2
файл f1 более старый, чем f2

f1 -ef f2
файлы f1 и f2 являются «жесткими» ссылками на один и тот же файл

Опубликовано в Bash

Рубрики