Linux系统中ls命令的常见用法整理
ls命令是linux系统中最被频繁使用的命令之一,我相信ls命令一定是你进入一台linux系统的电脑打开命令提示符后第一个使用的命令。我们每天都在频繁地使用ls命令,即使我们可能没有意识也从来用不到所有可用的选项。本文中,我们将讨论下一些基本的ls命令并且覆盖尽可能多的有关参数来讲解。
1. 不带任何选项列出文件
不带选项的ls命令来光秃秃地列出文件和目录,我们是不能看到像文件类型、大小、修改日期和时间、权限以及链接这样具体的信息的。
0001.pcap desktop downloads index.html install.log.syslog pictures templates
anaconda-ks.cfg documents fbcmd_update.php install.log music public videos
2 带 –l 选项列出文件列表
你看,ls -l(-l是字母不是“1”)就能展示出是文件还是目录,它的大小、修改日期和时间、文件或目录的名字以及文件的属主和它的权限。
total 176
-rw-r--r--. 1 root root 683 aug 19 09:59 0001.pcap
-rw-------. 1 root root 1586 jul 31 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 jul 31 02:48 desktop
drwxr-xr-x. 2 root root 4096 jul 31 02:48 documents
drwxr-xr-x. 4 root root 4096 aug 16 02:55 downloads
-rw-r--r--. 1 root root 21262 aug 12 12:42 fbcmd_update.php
-rw-r--r--. 1 root root 46701 jul 31 09:58 index.html
-rw-r--r--. 1 root root 48867 jul 31 02:17 install.log
-rw-r--r--. 1 root root 11439 jul 31 02:13 install.log.syslog
drwxr-xr-x. 2 root root 4096 jul 31 02:48 music
drwxr-xr-x. 2 root root 4096 jul 31 02:48 pictures
drwxr-xr-x. 2 root root 4096 jul 31 02:48 public
drwxr-xr-x. 2 root root 4096 jul 31 02:48 templates
drwxr-xr-x. 2 root root 4096 jul 31 02:48 videos
3. 浏览隐藏文件
列出所有文件包括以‘.’开头的隐藏文件。
. .bashrc documents .gconfd install.log .nautilus .pulse-cookie
.. .cache downloads .gnome2 install.log.syslog .netstat.swp .recently-used.xbel
0001.pcap .config .elinks .gnome2_private .kde .opera .spice-vdagent
anaconda-ks.cfg .cshrc .esd_auth .gtk-bookmarks .libreoffice pictures .tcshrc
.bash_history .dbus .fbcmd .gvfs .local .pki templates
.bash_logout desktop fbcmd_update.php .iceauthority .mozilla public videos
.bash_profile .digrc .gconf index.html music .pulse .wireshark
4. 用 -lh 选项来以易读方式列出文件
用-lh组合选项,以易读方式来显示大小。
total 176k
-rw-r--r--. 1 root root 683 aug 19 09:59 0001.pcap
-rw-------. 1 root root 1.6k jul 31 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4.0k jul 31 02:48 desktop
drwxr-xr-x. 2 root root 4.0k jul 31 02:48 documents
drwxr-xr-x. 4 root root 4.0k aug 16 02:55 downloads
-rw-r--r--. 1 root root 21k aug 12 12:42 fbcmd_update.php
-rw-r--r--. 1 root root 46k jul 31 09:58 index.html
-rw-r--r--. 1 root root 48k jul 31 02:17 install.log
-rw-r--r--. 1 root root 12k jul 31 02:13 install.log.syslog
drwxr-xr-x. 2 root root 4.0k jul 31 02:48 music
drwxr-xr-x. 2 root root 4.0k jul 31 02:48 pictures
drwxr-xr-x. 2 root root 4.0k jul 31 02:48 public
drwxr-xr-x. 2 root root 4.0k jul 31 02:48 templates
drwxr-xr-x. 2 root root 4.0k jul 31 02:48 videos
5. 以尾部以‘/’字符结尾的方式列出文件和目录
使用 ls 命令的 -f 选项,会在每个目录的末尾添加“/”字符显示。
0001.pcap desktop/ downloads/ index.html install.log.syslog pictures/ templates/
anaconda-ks.cfg documents/ fbcmd_update.php install.log music/ public/ videos/
6. 倒序列出文件
ls -r 选项能以倒序方式显示文件和目录。
videos public music install.log fbcmd_update.php documents anaconda-ks.cfg
templates pictures install.log.syslog index.html downloads desktop 0001.pcap
7. 递归列出子目录
ls -r 选项能列出非常长的目录树,来看看示例输出:
total 1384
-rw-------. 1 root root 33408 aug 8 17:25 anaconda.log
-rw-------. 1 root root 30508 aug 8 17:25 anaconda.program.log
./httpd:
total 132
-rw-r--r-- 1 root root 0 aug 19 03:14 access_log
-rw-r--r--. 1 root root 61916 aug 10 17:55 access_log-20120812
./lighttpd:
total 68
-rw-r--r-- 1 lighttpd lighttpd 7858 aug 21 15:26 access.log
-rw-r--r--. 1 lighttpd lighttpd 37531 aug 17 18:21 access.log-20120819
./nginx:
total 12
-rw-r--r--. 1 root root 0 aug 12 03:17 access.log
-rw-r--r--. 1 root root 390 aug 12 03:17 access.log-20120812.gz
8. 以修改时间倒序列出
带-ltr组合选项能以文件或目录的最新修改时间的次序来显示它们。
total 176
-rw-r--r--. 1 root root 11439 jul 31 02:13 install.log.syslog
-rw-r--r--. 1 root root 48867 jul 31 02:17 install.log
-rw-------. 1 root root 1586 jul 31 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 jul 31 02:48 desktop
drwxr-xr-x. 2 root root 4096 jul 31 02:48 videos
drwxr-xr-x. 2 root root 4096 jul 31 02:48 templates
drwxr-xr-x. 2 root root 4096 jul 31 02:48 public
drwxr-xr-x. 2 root root 4096 jul 31 02:48 pictures
drwxr-xr-x. 2 root root 4096 jul 31 02:48 music
drwxr-xr-x. 2 root root 4096 jul 31 02:48 documents
-rw-r--r--. 1 root root 46701 jul 31 09:58 index.html
-rw-r--r--. 1 root root 21262 aug 12 12:42 fbcmd_update.php
drwxr-xr-x. 4 root root 4096 aug 16 02:55 downloads
-rw-r--r--. 1 root root 683 aug 19 09:59 0001.pcap
9. 按文件大小排序
带-ls组合选项能按文件从大到小的次序显示。
total 176
-rw-r--r--. 1 root root 48867 jul 31 02:17 install.log
-rw-r--r--. 1 root root 46701 jul 31 09:58 index.html
-rw-r--r--. 1 root root 21262 aug 12 12:42 fbcmd_update.php
-rw-r--r--. 1 root root 11439 jul 31 02:13 install.log.syslog
drwxr-xr-x. 2 root root 4096 jul 31 02:48 desktop
drwxr-xr-x. 2 root root 4096 jul 31 02:48 documents
drwxr-xr-x. 4 root root 4096 aug 16 02:55 downloads
drwxr-xr-x. 2 root root 4096 jul 31 02:48 music
drwxr-xr-x. 2 root root 4096 jul 31 02:48 pictures
drwxr-xr-x. 2 root root 4096 jul 31 02:48 public
drwxr-xr-x. 2 root root 4096 jul 31 02:48 templates
drwxr-xr-x. 2 root root 4096 jul 31 02:48 videos
-rw-------. 1 root root 1586 jul 31 02:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 683 aug 19 09:59 0001.pcap
10. 显示文件或目录的索引节点号
我们有时候可以看到一些数字打印在文件或目录名之前,带-i选项就能列出文件或目录的索引节点号。
20112 0001.pcap 23610 documents 23793 index.html 23611 music 23597 templates
23564 anaconda-ks.cfg 23595 downloads 22 install.log 23612 pictures 23613 videos
23594 desktop 23585 fbcmd_update.php 35 install.log.syslog 23601 public
11. 显示ls命令的版本
查看ls命令的版本。
ls (gnu coreutils) 8.4
copyright (c) 2010 free software foundation, inc.
license gplv3+: gnu gpl version 3 or later <http://gnu.org/licenses/gpl.html>.
this is free software: you are free to change and redistribute it.
there is no warranty, to the extent permitted by law.
written by richard m. stallman and david mackenzie.
12. 显示帮助页面
列出ls命令的选项帮助页面。
usage: ls [option]... [file]...
13. 列出目录信息
用ls -l命令列出/tmp目录下的文件,其中-ld参数可以只显示/tmp目录的信息。
total 408
drwx------. 2 narad narad 4096 aug 2 02:00 crx_75daf8cb7768
-r--------. 1 root root 384683 aug 4 12:28 htop-1.0.1.tar.gz
drwx------. 2 root root 4096 aug 4 11:20 keyring-6mfjnk
drwx------. 2 root root 4096 aug 16 01:33 keyring-piozjr
drwx------. 2 gdm gdm 4096 aug 21 11:26 orbit-gdm
drwx------. 2 root root 4096 aug 19 08:41 pulse-gl6o4zdxqvrx
drwx------. 2 narad narad 4096 aug 4 08:16 pulse-udh76exwuvou
drwx------. 2 gdm gdm 4096 aug 21 11:26 pulse-wjtcweuctvhn
-rw-------. 1 root root 300 aug 16 03:34 yum_save_tx-2012-08-16-03-34ljtaa1.yumtx</p> <p> # ls -ld /tmp/
drwxrwxrwt. 13 root root 4096 aug 21 12:48 /tmp/
14. 显示文件的uid和gid
用ls -n命令来显示文件和目录的uid(译者注:userid,用户id)和gid(译者注:groupid,组id)。
total 36
drwxr-xr-x. 2 500 500 4096 aug 2 01:52 downloads
drwxr-xr-x. 2 500 500 4096 aug 2 01:52 music
drwxr-xr-x. 2 500 500 4096 aug 2 01:52 pictures
-rw-rw-r--. 1 500 500 12 aug 21 13:06 tmp.txt
drwxr-xr-x. 2 500 500 4096 aug 2 01:52 videos
15. ls命令和它的别名
我们给ls命令设置如下别名之后,当我们执行ls命令的时候它会默认执行-l选项并且像上文提到的那样显示长列表。
注意:我们可以通过不加任何参数的alias命令来看到目前系统中可用的所有alias设置,当然它们同时也可以unalias来取消。
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
删除一项之前定义的alias设置,只需用unalias命令即可。