Linux系统操作离不开命令,基础命令更显得尤为重要,下面几个让我们来一一尝试

ls:列出当前目录的内容或指定目录

用法:ls [options] [files_or_dirs]

ls -a包含隐藏文件
     ls -l显示额外的信息
     ls -R目录递归通过
     ls -ld目录和符号链接信息
     ls -1 文件分行显示
     ls –S 按从大到小排序
     ls –u 配合-t选项,显示并按atime从新到旧排序
     ls –U 不排序按目录存放顺序显示

ls -a 列出目录下的所有文件或目录包括隐藏文件

[root@localhost /]# ls -a
.             bin   etc   lib64  opt   run   sys      tmp
..            boot  home  media  proc  sbin  test     usr
.autorelabel  dev   lib   mnt    root  srv   testdir  var

ls -R

[root@localhost /]# ls -R /home
/home:
mageedu  shui  xiaoshui/home/mageedu:/home/shui:/home/xiaoshui:
text/home/xiaoshui/text:

ls -1

[root@localhost /]# ls -1 /home/
mageedu
shui
xiaoshui

ls -S 按照所占内存从大到小进行排序

[root@localhost /]# ls -Sl /root
total 16
-rw-------  1 root     root     5237 Jul 28 12:23 history.1
-rw-------. 1 root     root     2633 Jul 25 20:42 anaconda-ks.cfg
-rw-------  1 root     root      119 Jul 26 14:28 history_log
drwxr-xr-x  2 root     root        6 Jul 27 15:11 test
drwxrwxr-x  2 xiaoshui xiaoshui    6 Jul 27 15:15 text
-rw-r--r--  1 root     root        0 Jul 26 17:32 1
-rw-r--r--  1 root     root        0 Jul 26 17:32 100
-rw-r--r--  1 root     root        0 Jul 26 17:32 12

ls -tu 按照atime(访问时间进行排序)

[root@localhost /]# ls -ltu /root
total 16
drwxr-xr-x  2 root     root        6 Jul 28 20:03 test
drwxrwxr-x  2 xiaoshui xiaoshui    6 Jul 28 20:03 text
-rw-------  1 root     root     5237 Jul 28 12:23 history.1
-rw-r--r--  1 root     root        0 Jul 27 09:13 1
-rw-r--r--  1 root     root        0 Jul 26 17:32 12
-rw-r--r--  1 root     root        0 Jul 26 17:32 100
-rw-------  1 root     root      119 Jul 26 14:28 history_log
-rw-------. 1 root     root     2633 Jul 25 20:42 anaconda-ks.cfg

cp命令,copy即复制的意思,强大且常用的一条命令,总结一下,可以长来看看

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

SOURCE是文件:
   如果目标不存在:新建DEST,并将SOURCE中内容填充至DEST中

[root@localhost ~]# ls
1  100  12  anaconda-ks.cfg  history.1  history_log  test  text
[root@localhost ~]# cp /etc/issue /root/xiaoshui
[root@localhost ~]# ls
1  100  12  anaconda-ks.cfg  history.1  history_log  test  text  xiaoshui

DEST中
   如果目标存在:
   如果DEST是文件:将SOURCE中的内容覆盖至DEST中:

[root@localhost ~]# cat /root/xiaoshui
hello,world
[root@localhost ~]# cp /etc/issue /root/xiaoshui
cp: overwrite ‘/root/xiaoshui’? y
[root@localhost ~]# cat /root/xiaoshui
\S
Kernel \r on an \mMage Education Learning Services
http://www.magedu.com
tty is \l
hostname is \n
current time is \t

如果DEST是目录:在DEST下新建与原文件同名的文件,并将SOURCE中内容填充至新文件中:

[root@localhost ~]# ls -l /root/test/
total 0
[root@localhost ~]# cp /etc/issue /root/test/
[root@localhost ~]# ls -l /root/test/
total 4
-rw-r--r-- 1 root root 123 Jul 28 20:32 issue

cp SOURCE... DEST
   SOURCE...:多个文件
            DEST必须存在,且为目录,其它情形均会出错;

[root@localhost ~]# ls /root/text/
f1  f2  f3  f4  f5
[root@localhost ~]# cp /root/text/* /root/text1
cp: target ‘/root/text1’ is not a directory
[root@localhost ~]# cp /root/text/* /root/test/issue
cp: target ‘/root/test/issue’ is not a directory
[root@localhost ~]# mkdir text1
[root@localhost ~]# cp /root/text/* /root/text1
[root@localhost ~]# ls text1/
f1  f2  f3  f4  f5

如上所示,当SOURCE为多个文件时候,DEST不存在时或者为一个文件时都会报错,创建一个新的text1新的目录,cp成功

cp SOURCE DEST
  SOURCE是目录:此时使用选项:-r
     如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;

[root@localhost ~]# ls
1  100  12  anaconda-ks.cfg  history.1  history_log  test  text  text1  xiaoshui
[root@localhost ~]# ls test
f1  f2  f3  f4  f5  issue
[root@localhost ~]# cp /root/test/ /root/newtest
cp: omitting directory ‘/root/test/’
[root@localhost ~]# cp -r /root/test/ /root/newtest
[root@localhost ~]# ls
1  100  12  anaconda-ks.cfg  history.1  history_log  newtest  test  text  text1  xiaoshui
[root@localhost ~]# ls /root/newtest/
f1  f2  f3  f4  f5  issue

如果DEST存在:
       如果DEST是文件:报错

[root@localhost ~]# ls
1  100  12  anaconda-ks.cfg  history.1  history_log  newtest  test  text  text1  xiaoshui
[root@localhost ~]# cp -r /root/test/ history.1
cp: cannot overwrite non-directory ‘history.1’ with directory ‘/root/test/’

如果DEST是目录:复制成功

[root@localhost ~]# cp -r /root/test/  /tmp
[root@localhost ~]# ls /tmp
backup2016-07-28  fstab     ks-script-q9VyUw  nihao      systemd-private-0c68803c30a44dc89ab2a6d7cabf159a-cups.service-Jvhybl  test  yum.log
error.txt         issue.sh  ks-script-SYqw2e  right.txt  systemd-private-ac493ffd025a47b69ca2ea90b081675f-cups.service-uthsZ2  ts

-i:交互式
-r, -R: 递归复制目录及内部的所有内容;
-a: 归档,相当于-dR--preserv=all
-d:--no-dereference --preserv=links 不复制原文件,只复制链接名
--preserv[=ATTR_LIST]
        mode: 权限
        ownership: 属主属组
        timestamp:
        links
        xattr
        context
        all
-p: 等同--preserv=mode,ownership,timestamp
-v: --verbose

在root用户下系统已经定义别名cp=cp -i,可以使用\cp使用命令。在普通用户下cp即cp

[root@localhost test]# alias
alias cp='cp -i'
[root@localhost test]# cp ../1 /root/test/
cp: overwrite ‘/root/test/1’? y
[root@localhost test]#
[xiaoshui@localhost ~]$ cp f1 ./text/f1
[xiaoshui@localhost ~]$ cp f1 ./text/f1
[xiaoshui@localhost ~]$ cp  -i f1 ./text/f1
cp: overwrite ‘./text/f1’? y
[xiaoshui@localhost ~]$

-f  普通用户家目录中出现root的文件时,cp如果不加-f,是无法覆盖目标文件issue的,会报错。如果加上-f ,没有问题,不过这不是覆盖,而是将目标文件删除,在重新创建一个名称相同的文件,如下所示。

[xiaoshui@localhost ~]$ ls -l
total 4
-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:10 f1
-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:11 f2
-rw-r--r-- 1 root     root     123 Jul 29 09:56 issue
drwxrwxr-x 2 xiaoshui xiaoshui  24 Jul 28 21:14 text
drwxrwxr-x 2 xiaoshui xiaoshui  15 Jul 28 21:12 text2
[xiaoshui@localhost ~]$ cp /etc/fstab /home/xiaoshui/issue
cp: cannot create regular file ‘/home/xiaoshui/issue’: Permission denied
[xiaoshui@localhost ~]$ cp -f /etc/fstab /home/xiaoshui/issue
[xiaoshui@localhost ~]$ ls
f1  f2  issue  text  text2
[xiaoshui@localhost ~]$ ls -l
total 4
-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:10 f1
-rw-rw-r-- 1 xiaoshui xiaoshui   0 Jul 28 21:11 f2
-rw-r--r-- 1 xiaoshui xiaoshui 595 Jul 29 09:57 issue
drwxrwxr-x 2 xiaoshui xiaoshui  24 Jul 28 21:14 text
drwxrwxr-x 2 xiaoshui xiaoshui  15 Jul 28 21:12 text2

-r, -R: 递归复制目录及内部的所有内容,当复制的内容存在目录时,此时需要加上-r,R选项

[xiaoshui@localhost ~]$ cp /home/xiaoshui/ /tmp/
cp: omitting directory ‘/home/xiaoshui/’
[xiaoshui@localhost ~]$ cp -R /home/xiaoshui/ /tmp
[xiaoshui@localhost ~]$ ls /tmp/
backup2016-07-28  f2     issue.sh          right.txt                                                             test
clear             fstab  ks-script-q9VyUw  systemd-private-0c68803c30a44dc89ab2a6d7cabf159a-cups.service-Jvhybl  ts
error.txt         home   ks-script-SYqw2e  systemd-private-ac493ffd025a47b69ca2ea90b081675f-cups.service-uthsZ2  xiaoshui
f1                issue  nihao             systemd-private-ef1ab9dc007d41718d97c88fdff754b8-cups.service-McXBL9  yum.log

-d:--no-dereference --preserv=links 不复制原文件,只复制链接名,如果不加-d,则复制的内容是软链接指向的原文件,文件名称为软链接的名字,如下所示:

不加-d前

[root@localhost ~]# ls -l  /etc/redhat-release
lrwxrwxrwx. 1 root root 14 Jul 25 20:07 /etc/redhat-release -> centos-release
[root@localhost ~]# cp /etc/redhat-release  newtest/
[root@localhost ~]# ls -l newtest/
total 4
-rw-r--r-- 1 root root 38 Jul 29 10:34 redhat-release

加上-d后

lrwxrwxrwx. 1 root root 14 Jul 25 20:07 /etc/redhat-release -> centos-release
[root@localhost ~]# cp -d /etc/redhat-release new2
[root@localhost ~]# ls new2
redhat-release
[root@localhost ~]# ls -l new2
total 0
lrwxrwxrwx 1 root root 14 Jul 29 10:38 redhat-release -> centos-release
[root@localhost ~]#

--preserv[=ATTR_LIST]
        mode: 权限
        ownership: 属主属组
        timestamp:
        links
        xattr
        context
        all

目前只学到ownership和timestamp,所以后面的几个参数先不管,--preserv=ownership是指保持属主属组的,timestamp是保持其时间戳的,若想都保留,中间使用“,”隔开

如果不加--perserv,发现属组属主和时间戳都改变了

[root@localhost ~]# ls /home/xiaoshui/f1 -l
-rw-rw-r-- 1 xiaoshui xiaoshui 0 Jul 29 10:53 /home/xiaoshui/f1
[root@localhost ~]# cp /home/xiaoshui/f1 new2/
[root@localhost new2]# ls -l
total 0
-rw-r--r-- 1 root root  0 Jul 29 10:56 f1

加上--preserv=ownership,timestamp,发现属主属组和时间戳都保留下来了

[root@localhost new2]# ls -l
total 0
-rw-rw-r-- 1 xiaoshui xiaoshui  0 Jul 29 10:53 f1

-p: 等同--preserv=mode,ownership,timestamp

-v 详细信息

多总结多练习,才能达到熟练掌握并应用的程度。

转载于:https://blog.51cto.com/dashui/1831441

Linux基础系列4(ls,cp命令详解)相关推荐

  1. linux命令cp -a,linux命令_ls命令与cp命令详解(一)

    linux命令_ls命令与cp命令详解(1) 最近想详细熟悉下linux命令,学习笔记记录下: 今天主要学习的是目录操作,下面给大家介绍一下今天学到的几个命令: 1.ls命令 功能:显示文件或者目录信 ...

  2. Linux常用命令详解 ls -l命令详解

    Linux常用命令详解 ls -l命令详解 一.ls -l命令显示效果 使用ls -l会产生长列表格式输出,包含了目录中每个文件的更多的信息. 注:蓝色或/表示目录,如果带绿色或*号表示可执行文件. ...

  3. 【Linux学习】Linux必备命令(一)--之cp命令详解

    [Linux学习]Linux必备命令(一)–之cp命令详解 1.命令详解 cp 命令主要用于拷贝文件,用法,cp old.txt /tmp/new.txt ,常用来备份,如果拷贝目录需要加-r 参数, ...

  4. linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...

    在linux中对文件的复制删除移动分别会使用到rm,mv,cp三个命令,下面我来给大家介绍一下rm,mv,cp命令对文件的常规操作吧, 先看实例 删除复制移动文件命令 Linux代码 rm -rf / ...

  5. 【山外笔记-Linux 命令】cp 命令详解

    Linux 命令之 cp 命令详解 一.cp 命令简介 cp 命令主要用于复制文件或目录.即用来将一个或多个源文件或者目录复制到指定的目的文件或目录. cp 命令可以将单个源文件复制成一个指定文件名的 ...

  6. Bash cp 命令详解

    目录 Bash cp 命令详解 cp 命令语法和简单使用 cp 命令的选项说明及示例 按照是否复制文件的内容进行分类 文件属性的控制 创建文件的软硬链接 目标文件或文件夹存在 创建父目录 其它几个选项 ...

  7. dd命令、cp命令详解+dd命令、cp命令对比---delong

    1.dd命令详解 1)中文man手册dd的解释 NAME       dd - 转换和拷贝文件 摘要使用方法: dd    [--help]   [--version]   [if=file]   [ ...

  8. 【Linux】定时任务crontab和at命令详解

    [Linux]定时任务crontab和at命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 ...

  9. linux命令打包文件,Linux系统中打包文件的命令详解

    linux系统中遇到要打包文件的时候我们该使用什么命令呢?下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux系统中打包文件的命令详解的相关知识,希望对大家有帮助! linux系统 ...

  10. Linux中sort,uniq,cut,wc命令详解

    Linux中sort,uniq,cut,wc命令详解 来源:hellodev 本文主要对Linux中sort,uniq,cut,wc这4个命令的使用方法进行了详细说明,希望对你有所帮助. sort s ...

最新文章

  1. 【lidar】3D目标检测PointPillars:论文解读、代码解读、部署实现(1)
  2. linux下ping不通问题的说明与解决(DNS配置丢失)
  3. 声明:songzijian这个域名已经被抢注。大家别上了。不是我了。
  4. 微信小程序数据过滤(filter)方法
  5. 面试突击 002 | Redis 是如何处理已过期元素的?
  6. Nginx配置示例文件
  7. Spring集成Quartz定时任务 ---- 定时执行
  8. 摄像头拍摄后对图片进行图像处理-python(空域增强)
  9. 做生意、做营销常犯的10个错误和对策
  10. ansys toolkit教程_复合材料ANSYS-ACP仿真教程.pdf
  11. 算法系列——遗传算法matlab编程详解
  12. 无涂层无胶纸(UWF)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  13. 达芬奇剪辑调色专用键盘DaVinci Resolve Speed Editor
  14. 固态硬盘量产工具_FORESEE G500发布,江波龙国产固态硬盘再发声
  15. 推箱子游戏的java设计思路_基于Java推箱子游戏的设计与实现
  16. mysql in数量限制_SQL语句中in的个数限制为1000
  17. css制作 平行四边形和梯形导航条
  18. linux: It seems that scikit-learn has not been built correctly.
  19. c语言高级编程培训,C语言高级编程
  20. 【java】生成13位条形码(Ean-13码)

热门文章

  1. asp.net中读取数据库中的数据可以使用DataReader和DataSet 2种方式(初学者望大家不要笑我)...
  2. Java后端避坑——如何使用注解忽略掉JavaBean的属性值
  3. pthreads v3下的worker和pool的使用
  4. Python关键点常识
  5. 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完...
  6. appium 环境配置
  7. ios runtime (2)
  8. Codeforces 57C Array dp暴力找到规律
  9. linux下安装gcc及设置多版本gcc多版本共存(如果enable静态库,会报错,不知道为什么,忽略静态库就没问题了)...
  10. (转)UIButton用法详解一