Linux里面ls和ls .区别是什么?

ls或dir命令:列出当前目录的内容

ls(list的缩写)命令可以列出当前目录的内容。dir命令是ls命令的一个别名,也是directory的缩写。通常列出的文件会以不同的颜色进行显示,不同的颜色代表不同的文件类型,下表列出了文件类型与颜色的对应关系。
ls还会对特定类型的文件用符号进行标识,下表列出了常用的标识符号及其说明。

-a:列出指定目录下所有文件和子目录的信息(包括隐含文件)。

-A:同-a,但不列出. 和..。

-b:当文件名中有不可显示的字符时,将显示该字符的八进制数字。

-c:按文件的最后修改时间排序。

-d:显示目录名而不是显示目录下的内容,一般与-l连用。

-f:在列出的文件名后加上符号来区别不同类型。

-R:递归地显示指定目录的各级子目录中的文件。

-s:给出每个目录项所用的块数,包括间接块。

-t:按最后修改时间排序(新的在前,旧的在后)。

-l:以长格式显示文件的详细信息,包括文件的类型与权限、链接数、文件所有者、文件所有者所属的组、文件大小、最近修改时间及文件名,详情见图6.4。

# ls -l //以长格式显示目录内容,包括权限、

用 ‘ls’ 和 ‘dir’ 命令确定文件类型
确定文件类型的另一种方式是用 ls 和 dir 命令显示一长串结果。

用 ls -l 确定一个文件的类型。

当你查看文件权限时,第一个字符显示了文件类型,其它字符显示文件权限。

要列出当前目录下所有的文件名和目录名直接使用ls命令即可。
但如何只列出文件名而不列出目录呢?
查遍了ls 的帮助,也没看到有这个现成的选项。
幸好这个问题还是比较常见的,网上已经有了一些解答,但实验之后,我发现看到的几个链接给出的解决方法都是不完全正确的。具体如下。

二、此方法的漏洞分析和正确的方法(可能)
上述方法有一个重要的漏洞,那就是使用了awk '{print $8}'命令。前面提到这个命令是以空格符来判断列和列的分隔的。那么如果文件名中就包含空格会怎么样呢
继续实验一下。 运行touch "f ile"创建一个名为"f ile"的文件。注意文件名中的空格。
果然得到了错误的结果。
仔细阅读文档,发现一个可行而且比较简便的方法:

ls -1 , 注意这里是数字1,作用是单列输出。

ls -F:根据文件、目录等信息在文件名或目录名最后给予附加数据结构,例如:

下面看ls -F的输出
可见目录项的结尾被添加了 '/' 字符。这样便能够简单的区分目录和文件了。
而 grep -v [/$],[/$]表达式匹配的是以'/'结尾的字符串,而-v选项则是排除这些匹配的字符串。

linux下正确的只列出当前目录下目录名的方法

sed 's/old/new/g':以行为单位进行查找替换,注意:要删除“/”需要使用转义字符

我要回帖

更多关于 linux下ls命令 的文章

 

随机推荐