linux文件管理命令和bash展开式

文件管理 展开式

#1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
###cp
+ 文件复制
+ 1.单源复制
    + 1.DEST不存在则创建此文件,并复制源文件内容到DEST中
    + 2.DEST存在,若DEST是文件,则会覆盖目标文件
    + 3.若DEST是目录,则会事先在目录下创建一个同名的文件,并复制数据流。
+ 2.多源复制(目标必须是目录,且必须存在)
    + 分别复制每个文件至目标目录中,并保持原名
+ 选项
    + 1.-i interactive 交互,覆盖前提示
    + 2.-f force 强制覆盖
    + 3.-r(-R)recursive 递归复制目录
        + 1.DEST 存在,复制文件层级结构到DEST下
        + 2.DEST 不存在,创建目录并复制
        + 3.cp -r目录时软链接会保存,cp软链接会丢失软链接,加-d不丢失
    + 4.-d 不跟踪软链接的源文件,只复制软链接本身
    + 5.–preserve=(mode,ownership,timestamps,context,xattr,links,all) 保留文件属性
    + 6.-a=-dr –preserve=all 归档复制,递归复制目录,复制软链接本身,保留文件所有属性
###mv
+ move 移动或重命名文件或目录
+ 若文件或目录在同一目录下则重命名,否则为移动
+ -i 交互式
+ -f 强制
###rm
+ remove 删除
+ rm -i 交互式
+ rm -f 强制
+ rm -fr 强制删除目录
+ 删除时建议mv到专用目录中(如/root/tmp)当做回收站
“`
[root@localhost tmp]# ls
yum.log
[root@localhost tmp]# mkdir a
[root@localhost tmp]# ls
a yum.log
[root@localhost tmp]# mkdir b
[root@localhost tmp]# ls
a b yum.log
[root@localhost tmp]# cp a b
cp: omitting directory `a’
[root@localhost tmp]# cp yum.log b
[root@localhost tmp]# cp -a a b
[root@localhost tmp]# tree /tmp
/tmp
├── a
├── b
│ ├── a
│ └── yum.log
└── yum.log
3 directories, 2 files
[root@localhost tmp]# cp -a a c
[root@localhost tmp]# tree /tmp
/tmp
├── a
├── b
│ ├── a
│ └── yum.log
├── c
└── yum.log
4 directories, 2 files
[root@localhost tmp]# touch a.txt
[root@localhost tmp]# mv a.txt b
[root@localhost tmp]# tree /tmp
/tmp
├── a
├── b
│ ├── a
│ ├── a.txt
│ └── yum.log
├── c
└── yum.log
4 directories, 3 files
[root@localhost tmp]# mv b/a.txt b.txt
[root@localhost tmp]# tree /tmp
/tmp
├── a
├── b
│ ├── a
│ └── yum.log
├── b.txt
├── c
└── yum.log
4 directories, 3 files
[root@localhost tmp]# mv b a
[root@localhost tmp]# tree /tmp
/tmp
├── a
│ └── b
│ ├── a
│ └── yum.log
├── b.txt
├── c
└── yum.log
4 directories, 3 files
[root@localhost tmp]# mv a c
[root@localhost tmp]# tree /tmp
/tmp
├── b.txt
├── c
│ └── a
│ └── b
│ ├── a
│ └── yum.log
└── yum.log
4 directories, 3 files
[root@localhost tmp]# rm -fr b.txt c
[root@localhost tmp]# tree /tmp
/tmp
└── yum.log
0 directories, 1 file
“`
#2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
###bash shell基础特性之命令的执行状态结果
+ bash通过状态返回值输出此结果:成功为0,失败为1-255
+ 命令执行完成后,状态返回值保存于特殊变量$?中,仅保存最近一条命令的
+ 命令如果正常执行,会有命令执行结果返回值
+ 使用$()或“可以引用命令的执行结果
“`
[root@localhost tmp]# mkdir $(date +%F-%H-%M-%S)
[root@localhost tmp]# echo $?
0
[root@localhost tmp]# ls
2018-05-18-09-12-41 2018-05-18-09-12-45 ks-script-6ZKL2e yum.log
[root@localhost tmp]# mkdir `date +%F-%H-%M-%S`
[root@localhost tmp]# ls
2018-05-18-09-12-41 2018-05-18-09-13-03 yum.log
2018-05-18-09-12-45 ks-script-6ZKL2e
“`
###bash shell基础特性之命令行展开功能
+ ~自动展开为用户的家目录
+ {}分组以,分隔的路径列表,将其展开为多个路径
“`
[root@localhost tmp]# mkdir -pv /tmp/x/{y1/{a,b},y2}
mkdir: created directory ‘/tmp/x’
mkdir: created directory ‘/tmp/x/y1’
mkdir: created directory ‘/tmp/x/y1/a’
mkdir: created directory ‘/tmp/x/y1/b’
mkdir: created directory ‘/tmp/x/y2’
[root@localhost tmp]# tree /tmp/x
/tmp/x
├── y1
│ ├── a
│ └── b
└── y2
“`
#3、请使用命令行展开功能来完成以下练习:
   (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
“`
[root@localhost tmp]# mkdir -v {a,b}_{c,d}
mkdir: created directory ‘a_c’
mkdir: created directory ‘a_d’
mkdir: created directory ‘b_c’
mkdir: created directory ‘b_d’
“`
   (2)、创建/tmp/mylinux目录下的:
mylinux/
    ├── bin
    ├── boot
    │ └── grub
    ├── dev
    ├── etc
    │ ├── rc.d
    │ │ └── init.d
    │ └── sysconfig
    │ └── network-scripts
    ├── lib
    │ └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │ └── local
    │ ├── bin
    │ └── sbin
    └── var
        ├── lock
        ├── log
        └── run
“`
[root@localhost ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/{local,bin,sbin},var/{lock,log,run}}
mkdir: created directory ‘/tmp/mylinux’
mkdir: created directory ‘/tmp/mylinux/bin’
mkdir: created directory ‘/tmp/mylinux/boot’
mkdir: created directory ‘/tmp/mylinux/boot/grub’
mkdir: created directory ‘/tmp/mylinux/dev’
mkdir: created directory ‘/tmp/mylinux/etc’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d’
mkdir: created directory ‘/tmp/mylinux/etc/rc.d/init.d’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’
mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’
mkdir: created directory ‘/tmp/mylinux/lib’
mkdir: created directory ‘/tmp/mylinux/lib/modules’
mkdir: created directory ‘/tmp/mylinux/lib64’
mkdir: created directory ‘/tmp/mylinux/proc’
mkdir: created directory ‘/tmp/mylinux/sbin’
mkdir: created directory ‘/tmp/mylinux/sys’
mkdir: created directory ‘/tmp/mylinux/tmp’
mkdir: created directory ‘/tmp/mylinux/usr’
mkdir: created directory ‘/tmp/mylinux/usr/local’
mkdir: created directory ‘/tmp/mylinux/usr/bin’
mkdir: created directory ‘/tmp/mylinux/usr/sbin’
mkdir: created directory ‘/tmp/mylinux/var’
mkdir: created directory ‘/tmp/mylinux/var/lock’
mkdir: created directory ‘/tmp/mylinux/var/log’
mkdir: created directory ‘/tmp/mylinux/var/run’
[root@localhost ~]# tree /tmp/mylinux
/tmp/mylinux
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ ├── bin
│ ├── local
│ └── sbin
└── var
    ├── lock
    ├── log
    └── run
24 directories, 0 files
“`

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99075

(1)
徐鲁川徐鲁川
上一篇 2018-05-21 09:39
下一篇 2018-05-21 12:59

相关推荐

  • shell脚本,find .sed 压缩打包解压工具

    关于shell脚本 ,find和sed的应用

    2018-04-10
  • 计算机基础与linux基础

    描述计算机的组成及功能 按系列罗列linux的发行版,并描述不同发行版之间的联系与区别 描述linux的哲学思想,并按照自己的理解对其解释性描述 说明Linux系统上命令的使用格式;详细介绍ifconfig.echo,tty,startx,export,pwd,history,shutdown,poweroff,reboot,hwclock,date命令的使…

    Linux笔记 2018-06-19
  • mysql练习题

    导入hellodb.sql生成数据库(1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄MariaDB [hellodb]> select Name,Age from students where Age>25 and Gender=’M’;(2) 以ClassID为分组依据,显示每组的平均…

    Linux笔记 2018-06-09
  • 查找命令,压缩工具,以及Sed

    1、查找locate和find
    2、处理动作-exec和参数替换xargs
    3、压缩、解压缩及归档工具
    4、文本处理工具sed

    2018-04-16
  • 作业管理(任务计划)

    任务计划就好比我们的闹钟一样,到了指定的时间就该去做对应的事情。 任务计划分为两类: 一次性的任务计划:只执行一次就结束 周期性的任务计划:每隔一定的周期去做相同的事情 at命令就是专门用来处理一次性的计划任务 batch也是处理一次性的计划任务但是它是由系统自行选择空闲时间去执行此处指定的任务(不常用) crontab可以根据定义的周期信息,循环的去做一些…

    Linux笔记 2018-05-05
  • 二进制安装MySQL(MariaDB)

    在CentOS上部署MySQL有多种方式,如yum安装、编译安装、二进制安装。其中后二者可以有更多自定义特性,但安装过程略繁琐,本文简单介绍二进制安装方式。(请根据自己的情况调整目录)

    Linux笔记 2018-06-12

评论列表(1条)

  • 马哥教育
    马哥教育 2018-05-23 21:17

    不错。不过建议命令演示 写在命令编辑器里面。