假设当前路径为/data/db_1
,且/data
有三个子路径,则db_1, db_2, db_3
。
我想要知道db_1
的修改、所有者和群组。
目前我使用ls -li /data |grep db_1
,但我认为一定有更好的方法来做到这一点?
答案1
要查看当前目录的权限(无论它是什么),请使用:
ls -lid .
怎么运行的:
-l
要求ls
提供长目录列表。-i
询问ls
inode 信息(可选)。-d
告诉ls
报告目录本身,而不是其中的内容。.
按照 Unix 的惯例,指的是当前目录。
因为POSIXls
支持-l
、-i
和-d
选项,此方法是可移植的。
答案2
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
有关详细信息,请参阅。