Linux指令篇2-ls
查看文件与目录
命令参数:
-a: 全部的文件,包括隐藏文件
-A: 列出全部的文件(连同隐藏文件,但不包括.与..这两个目录)
-d: 仅列出目录本身,而不是列出目录内的文件数据
-f: 直接列出结果,而不进行排序(ls默认会以文件名排序)
-F: 根据文件、目录等信息给予附加数据
-h: 将文件容量以人类较一度的方式列出来
-i: 列出inode号码
-l: 列出长数据串,包含文件的属性与权限等数据
-n: 列出UID与GID,而非用户与用户组的名称
-r: 将排序结果反向输出
-R: 连同子目录内同一起列出来,等于该目录下的所有文件都会显示出来
-S: 以文件容量大小排序,而不是用文件名排序
-t: 依时间配需,而不是用文件名
红色标注为常用参数
时常出现的一个错误,作为一个例子:
假如你是root, 如果将ls由bin移动成为/root/ls, 然后自己本身也在/root下,请问
(1)能不能直接输入ls来执行?
(2)若不能,该如何执行ls这个命令?
(3)若要直接输入ls即可执行,又该如何进行?
答案: 此题的重点是将某个执行文件移动到非正规目录去,所以我们实际操作一下:
# mv /bin/ls /root
(1) 接下来,不论在哪个目录执行任何与ls相关的命令,都会提示如下的错误
[root@alextraining ~]# ls -bash: /bin/ls: No such file or directory
出现错误的原因在于,/root这个目录并不在PATH指定的目录中
[root@alextraining ~]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
所以,即使在/root目录下,也不能查询到ls命令
(2)解决(1)的问题有两个方法:
1)将ls放到/bin下
[root@alextraining ~]# mv /root/ls /bin
2)将/root加入到PATH中
[root@alextraining ~]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root
(3)如果不想执行两个操作,还要运行ls这个命令,那该怎么做呢,直接给出ls的绝对路径即可。
[root@alextraining ~]# /root/ls anaconda-ks.cfg Desktop install.log install.log.syslog ls