资讯详情

【每天一个 Linux 命令】Linux命令ls和cp

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 源文件 目标文件(夹)

这个是使用频率最多的命令,负责把一个源文件复制到目标文件(夹)下。如下图所示,复制到文件夹下,则文件名保持不变,复制到文件中,则文件名变更。如果目标文件已经存在或目标文件夹中含有同名文件,则复制之后目标文件或目标文件夹中的同名文件会被覆盖。

img 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)。当被链接的文件删除时,软链接文件也无法访问了,而硬链接文件仍能正常访问。

标签: 固态继电器s203zl

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台