日期:2014-05-16  浏览次数:20680 次

linux学习——档案目录之ls
在linux的学习中,目录与档案的管理上,不外在【显示示属性】、【拷贝】、【删除档案】及【移动档案或目录】等等,由亍档案与目录的管理在Linux当中是很重要的,尤其是每个人自己家目录的数据也都需要注意管理!因此对于linux档案与目录的一些基础管理知识学习更是不能马马虎虎,所以将其记录于此,以便今后的不时之需!

档案与目录的检视:ls
[root@sky ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@sky ~]# ls [--color={never,auto,always}] 目录名称
[root@sky ~]# ls [--full-time] 目录名称

选项不参数:
-a :全部的档案,连同隐藏档(开头为. 的档案)一起列出来(常用)
-A  :全部的档案,连同隐藏档,但不包括. 与.. 这两个目录
-d :仅列出目录本身,而不是列出目录内的档案数据(常用)
-f :直接列出结果,而不进行排序(ls 预设会以档名排序!)
-F :根据档案、目录等信息,给予附加数据结构,例如:*:代表可执行文件;/:代表目录;=:代表socket 档案;|:代表FIFO 档案;
-h :将档案容量以人类较易读的方式(例如GB, KB 等等)列出来;
-i :列出inode 号码
-l :长数据串行出,包吨档案的属性不权限等等数据;(常用)
-n :列出UID 不GID 而非使用者与群组的名称
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R :连同子目录内容一起列出来,等亍该目录下的所有档案都会显示出来;
-S :以档案容量大小排序,而不是用档名排序;
-t :依时间排序,而不是用档名。

--color=never :不要依据档案特性给予颜色显示;
--color=always :显示颜色
--color=auto :让系统自行依据设定来判断是否给予颜色
--full-time :以完整时间模式(包吨年、月、日、时、分) 输出
--time={atime,ctime} :输出access 时间或改变权限属性时间(ctime)而非内容变更时间(modification time)

在Linux系统当中,这个ls指令可能是最常被执行的吧!因为我们随时都要知道档案或者是目录的相关信息,不过,我们Linux的档案所记录的信息实在是太多了,ls 没有必要全部都列出来,所以,当你只有下达ls 时,默认显示的只有:非隐藏档的档名、以档名进行排序及文件名代表的颜色显示仅此而已。举例来说,你下达『ls /etc 』之后,叧有经过排序的文件名以及以蓝色显示目录及白色显示一般档案。那如果我还想要加入其他的显示信息时,可以加入上头提到的那些有用的选项呢?举例来说,我们之前一直用到的-l 这个长串显示数据内容,以及将隐藏档也一起列示出来的-a 选项等等。底下则是一些常用的范例,实际试做看看:

范例一:将家目录下的所有档案列出来(含属性与隐藏文件)

[root@sky ~]# ls -al ~
total 85
drwxr-x---  4 root root 4096 Sep 24 00:07 .
drwxr-xr-x 23 root root 4096 Sep 22 12:09 ..
-rw------- 1 root root 1474 Sep  4 18:27 anaconda-ks.cfg
-rw------- 1 root root 955 Sep 24 00:08 .bash_history
-rw-r--r-- 1 root root 24 Jan 6  2011 .bash_logout
-rw-r--r-- 1 root root 191 Jan 6  2011 .bash_profile
-rw-r--r-- 1 root root 176 Jan 6  2011 .bashrc
drwx------  3 root root 4096 Sep   5 10:37 .gconf
-rw-r--r-- 1 root root 42304 Sep   4 18:26 install.log
-rw-r--r-- 1 root root 5661 Sep  4 18:25 install.log.syslog

# 这个时候你会看到以. 为开头的几个档案,以及目录文件(.) (..) .gconf 等等,不过,目录文件文件名都是以深蓝色显示,有点不容易看清楚就是了。

范例二:承上题,不显示颜色,但在文件名末显示出该文件名代表的类型(type)

[root@sky ~]# ls -alF --color=never ~
total 85
drwxr-x---  4 root root 4096 Sep 24 00:07 ./
drwxr-xr-x 23 root root  4096 Sep 22 12:09 ../
-rw------- 1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
-rw------- 1 root root  955 Sep 24 00:08 .bash_history
-rw-r--r-- 1 root root   24 Jan 6  2011 .bash_logout
-rw-r--r-- 1 root root  191 Jan  6  2011 .bash_profile
-rw-r--r-- 1 root root  176 Jan  6  2011 .bashrc
drwx------  3 root root 4096 Sep   5 10:37 .gconf/
-rw-r--r-- 1 root root 42304 Sep  4 18:26 install.log
-rw-r--r-- 1 root root 5661 Sep  4 18:25 install.log.syslog
# 注意看到显示结果的第一行,嘿嘿~知道为何我们会下达类似./command之类的指令了吧?因为./ 代表的是【目前目录下】的意思!另外,那个.bashrc 时间仅写2011,能否知道详细
时间?

范例三:完整的呈现档案的修改时间*(modification time)
[root@sky ~]# ls -al --full-time  ~
total 85
drwxr-x---  4 root root 4096 2008-09-24 00:07:00.000000 +0800 .
drwxr-xr-x 23 root root  4096 2008-09-22 12:09:32.000000 +0800 ..
-rw------- 1 root root  1474 2008-09-04 18:27:10.000000 +0800  anaconda-ks.cfg
-rw------- 1 root root  955 2008-09-24 00:08:14.000000  +0800 .bash_history
-rw-r--r-- 1 root root   24 2007-01-06 17:05:04.000000  +0800 .bash_logout
-rw-r--r-- 1 root root  191 2007-01-06 17:05:04.000000  +0800 .b