Если текущим путем является /data/db_1
и /data
имеет три db_1, db_2, db_3
.
Я хочу знать модификацию db_1
, владельца и группу.
В настоящее время я использую ls -li /data |grep db_1
, но я думаю, что должен быть лучший способ сделать это?
Чтобы увидеть разрешения текущего каталога, каким бы он ни был, используйте:
ls -lid .
Как это устроено:
-l
просит ls
получить длинный список каталогов.
-i
запрашивает у ls
информацию об иноде (необязательно).
-d
говорит ls
сообщать о самом каталоге, а не о том, что в нем.
.
ссылается, как это принято для Unix, на текущий каталог.
Поскольку POSIX ls
поддерживает параметры -l
, -i
и -d
, этот метод является переносимым.
Не используйте ls
вообще. Обычно плохая идея - анализировать вывод ls
и есть другие инструменты, специально предназначенные для этой работы. В этом случае вы можете использовать stat
:
$ stat -c '%G %U %y' .
terdon terdon 2015-03-03 19:37:48.007033824 +0200
-c --format=FORMAT
use the specified FORMAT instead of the default; output a new‐
line after each use of FORMAT
%G group name of owner
%U user name of owner
%y time of last modification, human-readable
Таким образом, вышеприведенная команда выведет пользователя (%U
), группу (%G
) и время изменения (%y
) .
, текущий каталог. Он также может печатать другие фрагменты информации, практически все, что вам когда-либо понадобится. Смотрите man stat
для большего.