ls(英语全拼:list files)显示文件目录列表的命令Windows系统下DOS命令dir类似。当执行ls在命令中,默认只显示非隐藏文件的文件名、文件名和文件名所代表的颜色。默认列出当前目录的列表信息,无参数。ls命令使用频率很高,参数也很多,多达40或50个文只介绍了一些常用参数,其他参数可以通过man命令查看帮助手册。
说明:在linux下面,文件名以点.开头说文件是隐藏文件,比如.bashrc。
ls命令语法
ls [选项] [目录或文件名] 参数: -a:--all所有文件所有文件,包括隐藏文件(以.开头文件),参考示例1。(常用) -A:--almost-all缩写显示所有文件,包括隐藏文件,但不包括当前目录.和上级目录..参考示例2。 -c:和-lt一起使用:显示列表,ctime(文件状态最终变化时间)排序。和-l一起使用:显示ctime并以文件名排序。其他情况,以ctime排序。参考示例3。 -d:--directory缩写仅列出目录本身,而不是列出目录中的内容列表,参考示例4。(常用) -f:直接列出结果,而不进行排序(ls默认情况下,将以文件排名) --color[=WHEN]:是否根据文件类型显示颜色,WHEN可以为never、always或者auto --full-time:以完整的实际模式显示(包括年月日),类似与ls -l --time-style=full-iso,参考示例5。 -g:列表显示结果,和-l类似但不显示文件所有者。 -g:列表显示结果,和-l类似但不显示文件所有者。 -h:以文件内容为大小GB、KB易读方式显示,参考示例6。 -i:结合-l列出每个文件的参数inode,参考示例7。 -l:列出长数据串,显示文件的属性和权限等数据信息(常用) -n:和-l类似地,只显示的用户和组不是名称,而是相应的id,参考示例8。 -r:--reverse,将排序结果倒序显示,参考示例9。 -S:以文件大小排序,参考示例9。 -t:修改时间排序 --help:显示帮助信息
ls命令示例
[centos@s202 ~]$ ls 1.log a.txt coprocessor.log filename.txt for99.sh hadoop-2.7.3.tar.gz ini log student.txt test4.sh tf.sh 1.txt caseeg.sh file file.out ha hadoop.txt jdk-8u131-linux-x64.tar.gz logs test2.sh test5.sh zookeeper anaconda3 color99.sh file.err for99 hadoop header.txt kafka logZip.sh test3.sh test.sh zookeeper.out
例1:列出所有文件(注意和-A
参数的差异包括当前目录.
和上级目录..
这两个文件)。
[centos@s202 ~]$ ls -a . anaconda3 .bash_profile color99.sh file.err for99 hadoop-2.7.3.tar.gz jdk-8u131-linux-x64.tar.gz logZip.sh student.txt test5.sh zookeeper.out .. a.txt .bashrc .continuum filename.txt for99.sh hadoop.txt kafka .oracle_jre_usage test2.sh test.sh 1.log .bash_history .bashrc-anaconda3.bak coprocessor.log file.out ha header.txt log .python_history test3.sh tf.sh 1.txt .bash_logout caseeg.sh file .flume hadoop ini logs .ssh test4.sh zookeeper
例2:列出所有文件,但不包括表示当前目录.
和上级目录..
这两个文件。
[centos@s202 ~]$ ls -A 1.log .bash_history .bashrc-anaconda3.bak coprocessor.log file.out ha header.txt log .python_history test3.sh tf.sh 1.txt .bash_logout caseeg.sh file .flume hadoop ini logs .ssh test4.sh zookeeper anaconda3 .bash_profile color99.sh file.err for99 hadoop-2.7.3.tar.gz jdk-8u131-linux-x64.tar.gz logZip.sh student.txt test5.sh zookeeper.out a.txt .bashrc .continuum filename.txt for99.sh hadoop.txt kafka .oracle_jre_usage test2.sh test.sh [centos@s202 ~]$ ls --almost-all 1.log .bash_history .bashrc-anaconda3.bak coprocessor.log file.out ha header.txt log .python_history test3.sh tf.sh 1.txt .bash_logout caseeg.sh file .flume hadoop ini logs .ssh test4.sh zookeeper anaconda3 .bash_profile color99.sh file.err for99 hadoop-2.7.3.tar.gz jdk-8u131-linux-x64.tar.gz logZip.sh student.txt test5.sh zookeeper.out a.txt .bashrc .continuum filename.txt for99.sh hadoop.txt kafka .oracle_jre_usage test2.sh test.sh
示例3:显示列表,ctime排序
[centos@s202 ~]$ ls -clt total 390824 -rw-rw-r--. 1 centos centos 65 May 23 14:59 1.log -rw-rw-r--. 1 centos centos 157 May 23 14:59 test5.sh -rw-rw-r--. 1 centos centos 205 May 23 11:27 logZip.sh -rw-rw-r--. 1 centos centos 108 May 23 11:15 test4.sh -rw-rw-r--. 1 centos centos 139 May 23 09:15 ini -rw-rw-r--. 1 centos centos 268 May 23 01:16 test3.sh -rw-rw-r--. 1 centos centos 51 May 21 17:38 filename.txt -rw-rw-r--. 1 centos centos 1 May 21 17:38 file.err -rw-rw-r--. 1 centos centos 1 May 21 17:37 file.out -rw-rw-r--. 1 centos centos 51 May 21 17:30 a.txt -w-rw-r--. 1 centos centos 56 May 21 16:33 test.sh
-rw-rw-r--. 1 centos centos 5 May 21 14:39 file
-rw-rw-r--. 1 centos centos 8 Apr 5 01:18 test2.sh
drwxrwxr-x. 3 centos centos 35 Apr 5 01:03 zookeeper
-rw-rw-r--. 1 centos centos 474970 Apr 5 01:03 zookeeper.out
drwxrwxr-x. 12 centos centos 150 Jan 26 17:06 anaconda3
drwxrwxr-x. 3 centos centos 18 Nov 2 2018 kafka
drwxrwxr-x. 4 centos centos 37 Oct 11 2018 ha
-rw-rw-r--. 1 centos centos 4 Aug 24 2018 student.txt
drwxrwxr-x. 2 centos centos 63 Aug 24 2018 log
drwxrwxr-x. 2 centos centos 6 Aug 24 2018 logs
-rw-rw-r--. 1 centos centos 10 Aug 24 2018 header.txt
-rw-rw-r--. 1 centos centos 219 Aug 18 2018 coprocessor.log
drwxrwxr-x. 4 centos centos 37 Jul 22 2018 hadoop
-rw-rw-r--. 1 centos centos 1060 Jul 20 2018 hadoop.txt
-rw-rw-r--. 1 centos centos 214092195 Jul 20 2018 hadoop-2.7.3.tar.gz
-rwxrwxr-x. 1 centos centos 86 Jul 17 2018 caseeg.sh
-rwxrw-r--. 1 centos centos 90 Jul 17 2018 color99.sh
-rwxrwxr-x. 1 centos centos 53 Jul 17 2018 tf.sh
-rwxrwxr-x. 1 centos centos 140 Jul 17 2018 for99.sh
-rwxrwxr-x. 1 centos centos 108 Jul 17 2018 for99
-rw-rw-r--. 1 centos centos 20 Jul 17 2018 1.txt
-rw-rw-r--. 1 centos centos 185540433 Jul 17 2018 jdk-8u131-linux-x64.tar.gz
[centos@s202 ~]$ ls -cl
total 390824
-rw-rw-r--. 1 centos centos 65 May 23 14:59 1.log
-rw-rw-r--. 1 centos centos 20 Jul 17 2018 1.txt
drwxrwxr-x. 12 centos centos 150 Jan 26 17:06 anaconda3
-rw-rw-r--. 1 centos centos 51 May 21 17:30 a.txt
-rwxrwxr-x. 1 centos centos 86 Jul 17 2018 caseeg.sh
-rwxrw-r--. 1 centos centos 90 Jul 17 2018 color99.sh
-rw-rw-r--. 1 centos centos 219 Aug 18 2018 coprocessor.log
-rw-rw-r--. 1 centos centos 5 May 21 14:39 file
-rw-rw-r--. 1 centos centos 1 May 21 17:38 file.err
-rw-rw-r--. 1 centos centos 51 May 21 17:38 filename.txt
-rw-rw-r--. 1 centos centos 1 May 21 17:37 file.out
-rwxrwxr-x. 1 centos centos 108 Jul 17 2018 for99
-rwxrwxr-x. 1 centos centos 140 Jul 17 2018 for99.sh
drwxrwxr-x. 4 centos centos 37 Oct 11 2018 ha
drwxrwxr-x. 4 centos centos 37 Jul 22 2018 hadoop
-rw-rw-r--. 1 centos centos 214092195 Jul 20 2018 hadoop-2.7.3.tar.gz
-rw-rw-r--. 1 centos centos 1060 Jul 20 2018 hadoop.txt
-rw-rw-r--. 1 centos centos 10 Aug 24 2018 header.txt
-rw-rw-r--. 1 centos centos 139 May 23 09:15 ini
-rw-rw-r--. 1 centos centos 185540433 Jul 17 2018 jdk-8u131-linux-x64.tar.gz
drwxrwxr-x. 3 centos centos 18 Nov 2 2018 kafka
drwxrwxr-x. 2 centos centos 63 Aug 24 2018 log
drwxrwxr-x. 2 centos centos 6 Aug 24 2018 logs
-rw-rw-r--. 1 centos centos 205 May 23 11:27 logZip.sh
-rw-rw-r--. 1 centos centos 4 Aug 24 2018 student.txt
-rw-rw-r--. 1 centos centos 8 Apr 5 01:18 test2.sh
-rw-rw-r--. 1 centos centos 268 May 23 01:16 test3.sh
-rw-rw-r--. 1 centos centos 108 May 23 11:15 test4.sh
-rw-rw-r--. 1 centos centos 157 May 23 14:59 test5.sh
-rw-rw-r--. 1 centos centos 56 May 21 16:33 test.sh
-rwxrwxr-x. 1 centos centos 53 Jul 17 2018 tf.sh
drwxrwxr-x. 3 centos centos 35 Apr 5 01:03 zookeeper
-rw-rw-r--. 1 centos centos 474970 Apr 5 01:03 zookeeper.out
示例4:仅仅列出目录本身,不需要列出目录里的内容
[centos@s202 ~]$ ls -d /home #仅列出/home目录本身
/home
[centos@s202 ~]$ ls /home #列出/home目录里的内容
centos
示例5:显示完整时间
[centos@s202 ~]$ ls --full-time /
total 20
lrwxrwxrwx. 1 root root 7 2018-07-16 22:14:25.675333601 +0800 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 2018-07-16 22:20:27.271001648 +0800 boot
drwxr-xr-x. 20 root root 3180 2019-05-24 20:32:14.446999702 +0800 dev
drwxr-xr-x. 78 root root 8192 2019-05-24 20:32:06.675999960 +0800 etc
drwxr-xr-x. 3 root root 20 2018-07-16 22:18:42.624343276 +0800 home
lrwxrwxrwx. 1 root root 7 2018-07-16 22:14:25.677333601 +0800 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 2018-07-16 22:14:25.677333601 +0800 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 2016-11-05 23:38:36.000000000 +0800 media
drwxr-xr-x. 2 root root 6 2016-11-05 23:38:36.000000000 +0800 mnt
drwxr-xr-x. 2 root root 45 2019-01-26 17:08:03.622231114 +0800 opt
dr-xr-xr-x. 156 root root 0 2019-05-24 20:31:59.011000000 +0800 proc
dr-xr-x---. 7 root root 209 2018-08-31 14:37:12.818765051 +0800 root
drwxr-xr-x. 21 root root 600 2019-05-24 20:32:26.359999305 +0800 run
lrwxrwxrwx. 1 root root 8 2018-07-16 22:14:25.677333601 +0800 sbin -> usr/sbin
drwxr-xr-x. 10 centos centos 4096 2018-10-09 15:46:23.455045955 +0800 soft
drwxr-xr-x. 2 root root 6 2016-11-05 23:38:36.000000000 +0800 srv
dr-xr-xr-x. 13 root root 0 2019-05-24 20:32:07.496999933 +0800 sys
drwxrwxrwt. 7 root root 93 2019-05-24 21:31:02.252882289 +0800 tmp
drwxr-xr-x. 13 root root 155 2018-07-16 22:14:25.839333607 +0800 usr
drwxr-xr-x. 19 root root 267 2019-05-24 20:32:06.676999960 +0800 var
示例6:以易读方式显示列表
[centos@s203 ~]$ ls -l
total 524
drwxrwxr-x. 12 centos centos 150 Jan 26 17:17 anaconda3
drwxrwxr-x. 4 centos centos 37 Oct 11 2018 ha
drwxrwxr-x. 4 centos centos 37 Jul 22 2018 hadoop
drwxrwxr-x. 3 centos centos 18 Nov 2 2018 kafka
drwxrwxr-x. 2 centos centos 19 Aug 23 2018 log
drwxrwxr-x. 2 centos centos 21 Aug 24 2018 logs
drwxrwxr-x. 3 centos centos 56 Apr 5 01:03 zookeeper
-rw-rw-r--. 1 centos centos 534884 Apr 5 01:03 zookeeper.out
[centos@s203 ~]$ ls -lh
total 524K
drwxrwxr-x. 12 centos centos 150 Jan 26 17:17 anaconda3
drwxrwxr-x. 4 centos centos 37 Oct 11 2018 ha
drwxrwxr-x. 4 centos centos 37 Jul 22 2018 hadoop
drwxrwxr-x. 3 centos centos 18 Nov 2 2018 kafka
drwxrwxr-x. 2 centos centos 19 Aug 23 2018 log
drwxrwxr-x. 2 centos centos 21 Aug 24 2018 logs
drwxrwxr-x. 3 centos centos 56 Apr 5 01:03 zookeeper
-rw-rw-r--. 1 centos centos 523K Apr 5 01:03 zookeeper.out
[centos@s203 ~]$
示例7:显示inode
[centos@s203 ~]$ ls -li /
total 20
95 lrwxrwxrwx. 1 root root 7 Jul 16 2018 bin -> usr/bin
64 dr-xr-xr-x. 4 root root 4096 Jul 16 2018 boot
1025 drwxr-xr-x. 20 root root 3180 May 27 11:29 dev
16777281 drwxr-xr-x. 78 root root 8192 May 27 11:29 etc
50331740 drwxr-xr-x. 3 root root 20 Jul 16 2018 home
98 lrwxrwxrwx. 1 root root 7 Jul 16 2018 lib -> usr/lib
82 lrwxrwxrwx. 1 root root 9 Jul 16 2018 lib64 -> usr/lib64
83 drwxr-xr-x. 2 root root 6 Nov 5 2016 media
16777649 drwxr-xr-x. 2 root root 6 Nov 5 2016 mnt
33575378 drwxr-xr-x. 2 root root 45 Jan 26 16:48 opt
1 dr-xr-xr-x. 154 root root 0 May 27 11:29 proc
33574977 dr-xr-x---. 7 root root 213 Jan 26 17:15 root
9241 drwxr-xr-x. 21 root root 600 May 27 11:30 run
99 lrwxrwxrwx. 1 root root 8 Jul 16 2018 sbin -> usr/sbin
33575338 drwxr-xr-x. 10 centos centos 4096 Oct 9 2018 soft
50331741 drwxr-xr-x. 2 root root 6 Nov 5 2016 srv
1 dr-xr-xr-x. 13 root root 0 May 27 11:29 sys
16777288 drwxrwxrwt. 7 root root 93 May 27 12:48 tmp
33575353 drwxr-xr-x. 13 root root 155 Jul 16 2018 usr
50331713 drwxr-xr-x. 19 root root 267 May 27 11:29 var
Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。
cp命令语法
cp [options] source dest
或
cp [options] source... directory
:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
-a, --archive 等于-dR --preserve=all --backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似–backup 但不接受参数 --copy-contents 在递归处理是复制特殊文件内容
-d 等于–no-dereference --preserve=links
-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随源文件中的命令行符号链接
-l, --link 链接文件而不复制
-L, --dereference 总是跟随符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 不跟随源文件中的符号链接
-p 等于–preserve=模式,所有权,时间戳 --preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等
-R, -r, --recursive 复制目录及目录内的所有项目
cp命令示例
一、复制一个源文件到目标文件(夹)。
命令格式为:cp 源文件 目标文件(夹)
这个是使用频率最多的命令,负责把一个源文件复制到目标文件(夹)下。如下图所示,复制到文件夹下,则文件名保持不变,复制到文件中,则文件名变更。如果目标文件已经存在或目标文件夹中含有同名文件,则复制之后目标文件或目标文件夹中的同名文件会被覆盖。
cp命令复制一个文件
二、同时复制多个文件到目标文件(夹)下。
命令格式为:cp 源文件1 源文件2 目标文件夹 或 cp 文件* 目标文件夹
这个命令使用频率也很高。第一种命令格式可以把列出来的多个文件一次性复制到目标文件夹下,每个文件直接用空格分隔;第二种命令格式使用了通配符*,如下图所示,可以将所有以“.txt”结尾的文件都复制到文件夹testDir下。
cp命令复制多个文件
cp命令复制多个文件
三、复制源文件夹到目标文件夹下。
命令格式为:cp -r 源文件夹 目标文件夹
这个也是使用频率很高的命令,只需要记住复制文件夹一定要加“-r”参数,否则会出现“cp: omitting directory”错误。
cp命令复制文件夹
四、只有源文件较目标文件新时复制。
命令格式为:cp -u 源文件 目标文件
这个命令很实用,尤其是在更新文件时。如下图所示,只有源文件比目标文件新时,才会将源文件复制给目标文件,否则,及时执行了命令,也不会执行复制。
cp命令只文件较新时复制
五、创建文件的软链接。
命令格式为:cp -s 源文件 目标文件
也可以用ln命令实现同样的功能。当一个文件路径太深(如下述的a/b/c/d/e/orginalFile.txt),访问起来十分不方便时,就会创建这个文件的软链接,使之访问起来更方便些。软链接就相当于windows上的快捷方式。
cp命令创建软链接
六、创建文件的硬链接。
命令格式为:cp -l 源文件 目标文件
也可以用ln命令实现同样的功能。有时候,为了某种原因,需要创建一个硬链接,如下图所示。
cp命令创建硬链接
这里简单介绍下硬链接和软链接的区别。如下图所示,软连接文件(softLink.txt)和被链接文件(orginalFile.txt)所拥有的inode不相同(133827和139819),硬链接文件(hardLink.txt)和被链接的文件(orginalFile22.txt)拥有相同的inode(156981)。当被链接的文件删除时,软链接文件也无法访问了,而硬链接文件仍能正常访问。