375

我知道 usingls -l "directory/directory/filename"告诉我文件的权限。我如何在目录上做同样的事情?

我显然可以ls -l在层次结构中更高的目录上使用,然后滚动直到找到它,但这太痛苦了。如果我ls -l在实际目录上使用,它会提供其中文件的权限/信息,而不是实际目录的权限/信息。

我在 Mac OS X 10.5 和 Linux (Ubuntu Gutsy Gibbon) 的终端上都试过这个,结果是一样的。我应该使用某种标志吗?

4

10 回答 10

491

这是简短的答案:

$ ls -ld directory

这是它的作用:

-d, --directory
    list directory entries instead of contents, and do not dereference symbolic links

您可能对手册页感兴趣。这就是这里所有的人都能得到他们好的答案的地方。

参考在线手册页

于 2008-12-03T17:40:00.397 回答
70

stat如果您需要有关文件/目录的详细信息,也可以使用该命令。(正如你所说的那样,我准确地说你正在学习^^)

于 2008-12-03T17:46:11.927 回答
38
$ ls -ld directory

ls是列表命令。

-表示命令选项的开始。

l要求提供包含权限的长列表。

d表示列表应该与命名目录本身有关;不是它的内容。如果没有给出目录名称,则列表输出将与当前目录有关。

于 2017-03-07T15:39:07.207 回答
19

在 GNU/Linux 中,尝试使用ls, namei, getfacl, stat.

对于目录

[flying@lempstacker ~]$ ls -ldh /tmp
drwxrwxrwt. 23 root root 4.0K Nov  8 15:41 /tmp
[flying@lempstacker ~]$ namei -l /tmp
f: /tmp
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
[flying@lempstacker ~]$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

[flying@lempstacker ~]$ 

或者

[flying@lempstacker ~]$ stat -c "%a" /tmp
1777
[flying@lempstacker ~]$ stat -c "%n %a" /tmp
/tmp 1777
[flying@lempstacker ~]$ stat -c "%A" /tmp
drwxrwxrwt
[flying@lempstacker ~]$ stat -c "%n %A" /tmp
/tmp drwxrwxrwt
[flying@lempstacker ~]$

对于文件

[flying@lempstacker ~]$ ls -lh /tmp/anaconda.log
-rw-r--r-- 1 root root 0 Nov  8 08:31 /tmp/anaconda.log
[flying@lempstacker ~]$ namei -l /tmp/anaconda.log
f: /tmp/anaconda.log
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
-rw-r--r-- root root anaconda.log
[flying@lempstacker ~]$ getfacl /tmp/anaconda.log
getfacl: Removing leading '/' from absolute path names
# file: tmp/anaconda.log
# owner: root
# group: root
user::rw-
group::r--
other::r--

[flying@lempstacker ~]$

或者

[flying@lempstacker ~]$ stat -c "%a" /tmp/anaconda.log
644
[flying@lempstacker ~]$ stat -c "%n %a" /tmp/anaconda.log
/tmp/anaconda.log 644
[flying@lempstacker ~]$ stat -c "%A" /tmp/anaconda.log
-rw-r--r--
[flying@lempstacker ~]$ stat -c "%n %A" /tmp/anaconda.log
/tmp/anaconda.log -rw-r--r--
[flying@lempstacker ~]$
于 2016-11-08T07:45:47.353 回答
15

还有

getfacl /directory/directory/

其中包括 ACL

Linux ACL 的一个很好的介绍here

于 2015-05-06T14:30:27.673 回答
9

这将显示文件及其权限

stat -c '%a - %n' directory/*
于 2018-09-19T21:49:22.427 回答
5

除了上面的帖子,我想指出“man ls”会给你一个很好的关于“ls”(List”命令的手册。

此外,使用 ls -la myFile 将列出并显示有关该文件的所有事实。

于 2008-12-03T18:01:52.270 回答
5

在 OS X 上,您可以使用:

ls -lead

e 选项显示 ACL。ACL 对于了解系统上的确切权限非常重要。

于 2013-07-01T16:36:39.870 回答
2

ls -lstr

这显示了具有权限和 user:group 的普通 ls 视图

于 2017-12-13T05:31:27.143 回答
0

要检查文件的权限配置,请使用以下命令:

ls –l [file_name]

要检查目录的权限配置,请使用以下命令:

ls –l [Directory-name]
于 2020-10-08T13:41:20.700 回答