1. 按文件内容修改时间排序
默认情况下,list是按文件名排序的. -t选项让ls按文件内容的修改时间排序. 一般与-l选项一起使用,因为这样可以看到文件内容的修改时间. 使用--time-style=WORD可以指定时间的显示方式,WORD可以是full-iso, long-iso, ios, locale四种. 默认是按locale来显示时间的
$ ls -l --time-style=long-iso kk sed.test -rw-r--r-- 1 Administrator None 12 2000-01-02 03:04 kk -rw-r--r-- 1 Administrator None 6 2008-08-08 08:08 sed.test $ ls -lt --time-style=long-iso kk sed.test -rw-r--r-- 1 Administrator None 6 2008-08-08 08:08 sed.test -rw-r--r-- 1 Administrator None 12 2000-01-02 03:04 kk $ ls -lt --time-style=full-iso kk sed.test -rw-r--r-- 1 Administrator None 6 2008-08-08 08:08:00.000000000 +0800 sed.test -rw-r--r-- 1 Administrator None 12 2000-01-02 03:04:45.000000000 +0800 kk $ ls -lt --time-style=iso kk sed.test -rw-r--r-- 1 Administrator None 6 2008-08-08 sed.test -rw-r--r-- 1 Administrator None 12 2000-01-02 kk $ ls -lt --time-style=locale kk sed.test -rw-r--r-- 1 Administrator None 6 Aug 8 2008 sed.test -rw-r--r-- 1 Administrator None 12 Jan 2 2000 kk |
2. 按文件状态修改时间排序
文件状态修改时间和文件内容修改时间是不同的. -c让ls -l显示的是文件状态修改的时间,而不是文件内容修改时间.当它与-lt选项一起使用的时候,按文件状态修改时间排序;当它只与-l选项一起使用的时候,按文件名排序;不与-l一起使用的时候,按文件状态修改时间排序
$ stat sed* File: `sed.test' Size: 6 Blocks: 1 IO Block: 65536 regular Device: 88337c02h/2285075458d Inode: 24769797950545978 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ Access: 2009-03-15 11:43:20.927875000 +0800 Modify: 2008-08-08 08:08:00.000000000 +0800 Change: 2009-03-15 11:49:24.781250000 +0800 File: `sed.write' Size: 12 Blocks: 1 IO Block: 65536 regular Device: 88337c02h/2285075458d Inode: 1688849860313230 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ Access: 2009-03-15 14:56:41.031250000 +0800 Modify: 2007-07-07 07:07:00.000000000 +0800 Change: 2009-03-15 14:56:41.046875000 +0800 $ ls -lt --time-style=long-iso sed* -rw-r--r-- 1 Administrator None 6 2008-08-08 08:08 sed.test -rw-r--r-- 1 Administrator None 12 2007-07-07 07:07 sed.write $ ls -ltc --time-style=long-iso sed* -rw-r--r-- 1 Administrator None 12 2009-03-15 14:56 sed.write -rw-r--r-- 1 Administrator None 6 2009-03-15 11:49 sed.test $ ls -lc --time-style=long-iso sed* -rw-r--r-- 1 Administrator None 6 2009-03-15 11:49 sed.test -rw-r--r-- 1 Administrator None 12 2009-03-15 14:56 sed.write $ ls -c --time-style=long-iso sed* sed.write sed.test |
3. 按文件访问时间进行排序
-u指定按访问时间进行排序
$ stat sed* bb File: `sed.test' Size: 6 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 24769797950545978 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2000-01-02 03:04:56.000000000 +0800 Modify: 2007-07-07 07:07:00.000000000 +0800 Change: 2009-03-15 15:29:18.921875000 +0800 File: `sed.write' Size: 12 Blocks: 1 IO Block: 65536 regular file Device: 88337c02h/2285075458d Inode: 1688849860313230 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 2009-03-15 14:56:41.031250000 +0800 Modify: 2007-07-07 07:07:00.000000000 +0800 Change: 2009-03-15 14:56:41.046875000 +0800 File: `bb' Size: 0 Blocks: 0 IO Block: 65536 regular empty file Device: 88337c02h/2285075458d Inode: 8162774324707404 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 1999-01-02 03:04:56.000000000 +0800 Modify: 2007-07-07 07:07:00.000000000 +0800 Change: 2009-03-15 15:34:21.375000000 +0800 $ ls -u sed* bb sed.write sed.test bb |
4. 按文件大小排序
-S 用于指定按文件大小排序.小定的-s用于列出文件大小,但是不按大小排序. 另外,还可以用-h让ls在文件大小后面使用一个更适合的单位
$ ls giant* giant.file.1 giant.file.2 giant.file.3 $ ls -s giant* 1024 giant.file.1 2048 giant.file.2 3072 giant.file.3 $ ls -sh giant* 1.0M giant.file.1 2.0M giant.file.2 3.0M giant.file.3 $ ls -sSh giant* 3.0M giant.file.3 2.0M giant.file.2 1.0M giant.file.1 |
5. 先列出文件夹,再列出文件
--group-directories指定先列出文件夹,再列出文件
$ ls awk.test bc.test.bak kk lsdir2 perl.test~ touch.1 bb func.test log.test orld sed.test xargs.file bc.test grep.test lsdir perl.test sed.write $ ls --group-directories lsdir bb func.test log.test perl.test~ touch.1 lsdir2 bc.test grep.test orld sed.test xargs.file awk.test bc.test.bak kk perl.test sed.write |
上例中,lsdir,lsdir2都是文件夹
另外,-d是列出文件夹本向的信息,而不是文件夹里的文件的信息
$ ls -l lsdir total 0 $ ls -ld lsdir drwxr-xr-x+ 2 Administrator None 0 Mar 15 14:36 lsdir |
-r可以逆向排序
$ ls -Ssh giant* 3.0M giant.file.3 2.0M giant.file.2 1.0M giant.file.1 Administrator@snow ~ $ ls -Sshr giant* 1.0M giant.file.1 2.0M giant.file.2 3.0M giant.file.3 |
--time=WORD可以指定ls -l输出什么时间.WORD可以是atime(文件访问时间),ctime文件状态修改时间.如果不指定这个参数,就是文件内容修改时间. 这个参数还可以与--sort=WORD结合使用,指定依哪个时间进行排序.(不过,谁会这么麻烦呢,直接用-t(文件内容修改时间), -c(文件状态修改时间), -u(文件访问时间)就行啦.可能用这个参数形式更统一吧)
$ stat bb File: `bb' Size: 0 Blocks: 0 IO Block: 65536 regular empty file Device: 88337c02h/2285075458d Inode: 8162774324707404 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/Administrator) Gid: ( 513/ None) Access: 1999-01-02 03:04:56.000000000 +0800 Modify: 2007-07-07 07:07:00.000000000 +0800 Change: 2009-03-15 15:34:21.375000000 +0800 $ ls -l --time=atime --time-style=long-iso bb -rw-r--r-- 1 Administrator None 0 1999-01-02 03:04 bb $ ls -l --time=ctime --time-style=long-iso bb -rw-r--r-- 1 Administrator None 0 2009-03-15 15:34 bb $ ls -l --time-style=long-iso bb -rw-r--r-- 1 Administrator None 0 2007-07-07 07:07 bb |
-X可以按文件名的后缀排序
$ ls -sh giant* 1.0M giant.file.1 2.0M giant.file.2 3.0M giant.file.3 4.0K giant.file.4 $ ls -Xr giant* giant.file.4 giant.file.3 giant.file.2 giant.file.1 |
-b可以显示"不可打印"的字符
上图中有一个文件名里有换行符,不使用-b选项的时候,它显示为一个问号;使用-b以后,换行符以\n显示
转载请注明出处 http://fornote.blogspot.com
没有评论:
发表评论