A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash/zsh: ls command not found #Debian apt-get install coreutils #Ubuntu apt-get install coreutils #Alpine apk add coreutils #Arch Linux pacman -S coreutils #Kali Linux apt-get install coreutils #CentOS yum install coreutils #Fedora dnf install coreutils #OS X brew install coreutils #Raspbian apt-get install coreutils #Docker docker run cmd.cat/ls ls
ls 命令用来显示目标列表,在 Linux 中是使用率较高的命令。ls 命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。
ls [option ...] [file]... [-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time] [--format={long,verbose,commas,across,vertical,single-col‐umn}] [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--]
ls [-a | --all] [-A | --almost-all] [--author] [-b | --escape] [--block-size=size] [-B | --ignore-backups] [-c] [-C] [--color[=when]] [-d | --directory] [-D | --dired] [-f] [-F | --classify] [--file-type] [--format=word] [--full-time] [-g] [--group-directories-first] [-G | --no-group] [-h | --human-readable] [--si] [-H | --dereference-command-line] [--dereference-command-line-symlink-to-dir] [--hide=pattern] [--indicator-style=word] [-i | --inode] [-I | --ignore=pattern] [-k | --kibibytes] [-l] [-L | --dereference] [-m] [-n | --numeric-uid-gid] [-N | --literal] [-o] [-p | --indicator-style=slash] [-q | --hide-control-chars] [--show-control-chars] [-Q | --quote-name] [--quoting-style=word] [-r | --reverse] [-R | --recursive] [-s | --size] [-S] [--sort=word] [--time=word] [--time-style=style] [-t] [-T | --tabsize=cols] [-u] [-U] [-v] [-w | --width=cols] [-x] [-X] [-Z | --context] [-1]
-C # 多列输出,纵向排序。 -F # 每个目录名加 "/" 后缀,每个 FIFO 名加 "|" 后缀, 每个可运行名加“ * ”后缀。 -R # 递归列出遇到的子目录。 -a # 列出所有文件,包括以 "." 开头的隐含文件。 -c # 使用“状态改变时间”代替“文件修改时间”为依据来排序(使用“-t”选项时)或列出(使用“-l”选项时)。 -d # 将目录名象其它文件一样列出,而不是列出它们的内容。 -i # 输出文件前先输出文件系列号(即 i 节点号: i-node number)。 -l 列出(以单列格式)文件模式(file mode), #文件的链接数,所有者名,组名,文件大小(以字节为单位),时间信息,及文件名。 #缺省时,时间信息显示最近修改时间;可以以选项“-c”和“-u”选择显示其它两种时间信息。 #对于设备文件,原先显示文件大小的区域通常显示的是主要和次要的号(majorand minor device numbers)。 -q # 将文件名中的非打印字符输出为问号。(对于到终端的输出这是缺省的。) -r # 逆序排列。 -t # 按时间信息排序。 -u # 使用最近访问时间代替最近修改时间为依据来排序(使用“-t”选项时)或列出(使用“-l”选项时)。 -1 # 单列输出。 -1, --format=single-column # 一行输出一个文件(单列输出)。如标准输出不是到终端,此选项就是缺省选项。 -a, --all # 列出目录中所有文件,包括以“.”开头的文件。 -b, --escape # 把文件名中不可输出的字符用反斜杠加字符编号(就象在 C 语言里一样)的形式列出。 -c, --time=ctime, --time=status # 按文件状态改变时间(i节点中的ctime)排序并输出目录内 # 容。如采用长格式输出(选项“-l”),使用文件的状态改 # 变时间取代文件修改时间。【译注:所谓文件状态改变(i节 # 点中以ctime标志),既包括文件被修改,又包括文件属性( 如所有者、组、链接数等等)的变化】 -d, --directory # 将目录名象其它文件一样列出,而不是列出它们的内容。 -f # 不排序目录内容;按它们在磁盘上存储的顺序列出。同时启 动“ -a ”选项,如果在“ -f ”之前存在“ -l # ”、“ - -color ”或“ -s ”,则禁止它们。 -g # 忽略,为兼容UNIX用。 -i, --inode # 在每个文件左边打印 i 节点号(也叫文件序列号和索引号: file serial number and index num‐ # ber)。i节点号在每个特定的文件系统中是唯一的。 -k, --kilobytes # 如列出文件大小,则以千字节KB为单位。 -l, --format=long, --format=verbose # 除每个文件名外,增加显示文件类型、权限、硬链接数、所 有者名、组名、大小( byte # )、及时间信息(如未指明是 其它时间即指修改时间)。对于6个月以上的文件或超出未来 1 # 小时的文件,时间信息中的时分将被年代取代。 # 每个目录列出前,有一行“总块数”显示目录下全部文件所 占的磁盘空间。块默认是 1024 # 字节;如果设置了 POSIXLY_CORRECT 的环境变量,除非用“ -k ”选项,则默认块大小是 512 字 # 节。每一个硬链接都计入总块数(因此可能重复计数),这无 疑是个缺点。 # 列出的权限类似于以符号表示(文件)模式的规范。但是 ls # 在每套权限的第三个字符中结合了多位( multiple bits ) 的信息,如下: s 如果设置了 setuid # 位或 setgid 位,而且也设置了相应的可执行位。 S 如果设置了 setuid 位或 setgid # 位,但是没有设置相应的可执行位。 t 如果设置了 sticky 位,而且也设置了相应的可执行位。 T # 如果设置了 sticky 位,但是没有设置相应的可执行位。 x # 如果仅仅设置了可执行位而非以上四种情况。 - 其它情况(即可执行位未设置)。 -m, --format=commas # 水平列出文件,每行尽可能多,相互用逗号和一个空格分隔。 -n, --numeric-uid-gid # 列出数字化的 UID 和 GID 而不是用户名和组名。 -o # 以长格式列出目录内容,但是不显示组信息。等于使用“ --format=long --no-group # ”选项。提供此选项是为了与其它版本的 ls 兼容。 -p # 在每个文件名后附上一个字符以说明该文件的类型。类似“ -F ”选项但是不 标示可执行文件。 -q, --hide-control-chars # 用问号代替文件名中非打印的字符。这是缺省选项。 -r, --reverse # 逆序排列目录内容。 -s, --size # 在每个文件名左侧输出该文件的大小,以 1024 字节的块为单位。如果设置了 POSIXLY_CORRECT # 的环境变量,除非用“ -k ”选项,块大小是 512 字节。 -t, --sort=time # 按文件最近修改时间( i 节点中的 mtime )而不是按文件名字典序排序,新文件 靠前。 -u, --time=atime, --time=access, --time=use # 类似选项“ -t ”,但是用文件最近访问时间( i 节点中的 atime )取代文件修 # 改时间。如果使用长格式列出,打印的时间是最近访问时间。 -w, --width cols # 假定屏幕宽度是 cols ( cols 以实际数字取代)列。如未用此选项,缺省值是这 # 样获得的:如可能先尝试取自终端驱动,否则尝试取自环境变量 COLUMNS (如果设 # 置了的话),都不行则取 80 。 -x, --format=across, --format=horizontal # 多列输出,横向排序。 -A, --almost-all # 显示除 "." 和 ".." 外的所有文件。 -B, --ignore-backups # 不输出以“ ~ ”结尾的备份文件,除非已经在命令行中给出。 -C, --format=vertical # 多列输出,纵向排序。当标准输出是终端时这是缺省项。使用命令名 dir 和 d 时, 则总是缺省的。 -D, --dired # 当采用长格式(“-l”选项)输出时,在主要输出后,额外打印一行: //DIRED// BEG1 END1 BEG2 # END2 ... # BEGn 和 ENDn 是无符号整数,记录每个文件名的起始、结束位置在输出中的位置( # 字节偏移量)。这使得 Emacs 易于找到文件名,即使文件名包含空格或换行等非正 # 常字符也无需特异的搜索。 # # 如果目录是递归列出的(“ -R ”选项),每个子目录后列出类似一行: # //SUBDIRED// BEG1 END1 ... 【译注:我测试了 TurboLinux4.0 和 RedHat6.1 ,发现它们都是在 “ # //DIRED// BEG1... ”之后列出“ //SUBDIRED// BEG1 ... ”,也即只有一个 # 而不是在每个子目录后都有。而且“ //SUBDIRED// BEG1 ... ”列出的是各个子目 录名的偏移。】 -F, --classify, --file-type # 在每个文件名后附上一个字符以说明该文件的类型。“ * ”表示普通的可执行文件; “ / ”表示目录;“ # @ ”表示符号链接;“ | ”表示FIFOs;“ = ”表示套接字 (sockets) ;什么也没有则表示普通文件。 -G, --no-group # 以长格式列目录时不显示组信息。 -I, --ignorepattern # 除非在命令行中给定,不要列出匹配shell文件名匹配式(pattern ,不是指一般 # 表达式)的文件。在shell中,文件名以"."起始的不与在文件名匹配式(pattern) # 开头的通配符匹配。 -L, --dereference # 列出符号链接指向的文件的信息,而不是符号链接本身。 -N, --literal # 不要用引号引起文件名。 -Q, --quote-name # 用双引号引起文件名,非打印字符以 C 语言的方法表示。 -R, --recursive # 递归列出全部目录的内容。 -S, --sort=size # 按文件大小而不是字典序排序目录内容,大文件靠前。 -T, --tabsize cols # 假定每个制表符宽度是 cols 。缺省为 8。为求效率, ls 可能在输出中使用制表符。 若 cols 为 0,则不使用制表符。 -U, --sort=none # 不排序目录内容;按它们在磁盘上存储的顺序列出。(选项“-U”和“-f”的不 # 同是前者不启动或禁止相关的选项。)这在列很大的目录时特别有用,因为不加排序 # 能显著的加快速度。 -X, --sort=extension # 按文件扩展名(由最后的 "." 之后的字符组成)的字典序排序。没有扩展名的先列 出。 --color[=when] # 指定是否使用颜色区别文件类别。环境变量 LS_COLORS 指定使用的颜色。如何设置 这个变量见 dir‐ # colors(1) 。 when 可以被省略,或是以下几项之一: none # 不使用颜色,这是缺省项。 # auto 仅当标准输出是终端时使用。 always 总是使用颜色。指定 --color 而且省略 when 时就等同于 # --color=always 。 --full-time # 列出完整的时间,而不是使用标准的缩写。格式如同 date(1) 的缺省格式;此格式 # 是不能改变的,但是你可以用 cut(1) 取出其中的日期字串并将结果送至命令 “ date -d ”。 # 输出的时间包括秒是非常有用的。( Unix 文件系统储存文件的时间信息精确到秒, # 因此这个选项已经给出了系统所知的全部信息。)例如,当你有一个 Makefile 文件 # 不能恰当的生成文件时,这个选项会提供帮助。
目录:指定要显示列表的目录,也可以是具体的文件。
$ ls # 仅列出当前目录可见文件 $ ls -l # 列出当前目录可见文件详细信息 $ ls -hl # 列出详细信息并以可读大小显示文件大小,相当于 ll 命令 $ ls -al # 列出所有文件(包括隐藏)的详细信息
ls 列出根目录 \下的所有目录:
$ ls / bin dev lib media net root srv upload www boot etc lib64 misc opt sbin sys usr home lost+found mnt proc selinux tmp var
ls 列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :
ls -ltr s*
ls 输出长格式列表,相当于 Linux 的 ll 命令
[root@localhost ~]$ ls -1 anaconda-ks.cfg install.log install.log.syslog satools
ls 水平输出文件列表
[root@Dev_Test Data]$ ls -m 1503651083477_eda13950726e4061aa5837eaace66ef0_res_1652.log, apps, autoload.php, backvidoe, dsp_speed.log, logs, long, my, mysqldump, opcache, php-beast.log, request.txt, requset.log, response.log, sources, sql, switchJson.php, test.sh, video, vivo, vivo-bidding.proto, vivo.php, webapps, xtrabackup, yaconf
ls 修改最后一次编辑的文件,最近修改的文件显示在最上面。
[root@localhost /]$ ls -t tmp root etc dev lib boot sys proc
ls 显示递归文件
[root@localhost ~]$ ls -R .: anaconda-ks.cfg install.log install.log.syslog satools ./satools: black.txt freemem.sh iptables.sh lnmp.sh mysql php502_check.sh ssh_safe.sh
ls 按照特殊字符对文件进行分类
[root@Dev_Test YafTest]$ ls -F actions/ composer.json library/ plugins/ test.py* application/ conf/ models/ public/ vendor/
ls 列出文件并标记颜色分类
[root@Dev_Test YafTest]$ ls --color=if-tty actions composer.json library plugins test.py application conf models public vendor
find与ls命令合体坑
详见 find 命令