Linux基础之文件管理和bash特性

部分文件管理命令,bash的一些基础特性,部分glob文件匹配示例

文件管理命令:

 cp命令:针对文件内容进行复制,元数据不会复制到目标文件或目录中

单源复制:cp [OPTION] source destination

  • 若目标文件不存在,则先创建文件在copy
  • 若目标是非目录文件(目标文件非空),则覆盖目标文件
  • 若目标是目录文件,则在目标目录中创建文件,再复制数据到该文件中
  • 若源是目录的话,默认复制不会成功,需要附带选项(-r)

示例:  cp /etc/fstab /tmp/fstab

多源复制:多个文件复制

  • 若目标文件不存在,则不能复制
  • 若目标不是目录文件,则不能复制
  • 若目标为目录,则在目录中创建这几个文件,并复制相应的数据进文件中

  常见选项:

  • -i:interactive,进行复制操作之前会提示用户
  • -f:强制覆盖目标文件
  • -r:递归复制目录(子目录也会复制)
  • -d:只复制链接本身,链接所指向的目标文件不复制,preserve=links
  • -a:复制链接本身及所指向的目标文件,包括元数据,presereve=all

mv命令:复制文件至目标文件,然后删除原文件

  规则:mv [OPTION] source DEST

  示例:mv /tmp/zabbix_server.log /var/log/

  常见选项:

  • -i:interactive
  • -f:强制移动force

rm命令:删除文件

  规则:rm [OPTION] FILE

  示例:rm –rf /tmp/123/1.txt

  选项:

  • -i:interactive
  • -f:强制删除
  • -r:recursive,递归删除)(此选项慎用)

cd命令:切换目录change directory

  规则:cd /some/dirtectory

  示例:cd /etc/inittab

pwd命令:显示当前目录,内建命令,可直接使用

 

ls命令:显示指定目录或文件的内容

  规则:ls [OPTION] /file/or/directory

  示例:ls –l /etc/init.d

命令执行状态返回值:

命令执行结果只有两种情况:

成功:返回值一定为0

失败:返回值1-255都有可能

bash使用特殊变量$?来存放最近一次命令执行的返回状态值,可使用echo $?来得到命令的执行结果状态

命令行展开:

~展开为root的家目录

~USERNAME为用户USERNAME的家目录

{ }可以承载逗号分隔的列表,并将其展开为多个路径

示例:touch /{x,y}/{a,b}相当于创建了四个文件/x/a,/x/b,/y/a,/y/b

(1)创建/tmp目录下的:a_c, a_d, b_c, b_d

touch {a,b}-{c,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

touch /tmp/myselinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,prooc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

文件的元数据:

      元数据分类:

  • mode:权限
  • ownership:属主属组
  • timestamp:时间戳
  • links:符号连接
  • xattr:扩展属性
  • context:安全标签
  • 文件大小

      元数据查看:

  stat命令可以查看文件的元数据

规则:stat [OPTION] [FILE]

示例:stat –f /etc/fstab(显示文件所在文件系统的信息而不是文件信息)

      元数据时间戳修改:

  touch命令可以修改时间戳

 规则:touch [OPTION] FILE

 示例:touch –a /tmp/log/zabbix_server.log(修改文件的存取时间)

  选项:

  • -a:只更改存取时间
  • -d:使用指定日期时间
  • -m:更改修改时间(modify time)
  • -r:将文件的时间更改为参考值(-reference=FILE)
  • -t:使用指定时间

bash特性之命令别名及命令结果引用: 

   命令别名的定义:

命令的定义使用alias命令(只在当前shell进程有效)

  规则:alias string=’COMMAND [OPTION] [argument]’

  示例:alias rm=’mv -i’

   命令结果引用:

  • $(name):将括号内运行的内容作为变量引用
  • `name`:反引号,与$(name)的用法相似
  • 管道:具有一定的逻辑结构,上一个命令的运行结果作为参数传递到下一个命令

bash特性之glob文件匹配:

(1)显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

ls –ld /var/l*[[:digit:]]lower:]]

(2)显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

ls –ld /etc/[[:digit:]]*[^[:digit:]]

(3)显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

ls –ld /etc/[^[:alpha:]][[:alpha:]]*

(4)在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

touch /tmp/tfile-$(date +%Y-%m-%d-%H-%m-%S)

(5)复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

cp –R /etc/p*[^[:digit:]] /tmp/test1

(6)复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

cp -R /etc/*.d /tmp/test2

(7)复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

cp –R /etc/{l,m,n}*.conf /tmp/mytest3

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

(0)
~~
上一篇 2018-01-16 20:20
下一篇 2018-01-17 11:44

相关推荐

  • inode 与 block

    iNode:索引节点(index node) iNode是用来存储数据属性信息的,iNode包含的属性包括:文件大小属组归属的用户组读写权限文件类型修改时间指向文件实体的指针功能(iNode节点和block的对应关系)但是,iNode不包括文件名 iNode小结: 磁盘分区格式化为ext4文件系统后会生成一定数量的iNode和block iNode是索引节点…

    Linux干货 2017-07-18
  • 管道和用户管理权限

           一周的时间又过去了,感觉过得太快了,但是过得很充实,这就够啦!把在平时的学习中觉得重要有意义的地方记录下来,希望可以对自己以后的学习有所帮助! 1.把/etc/issue转化为大写,并重定向到issue.out. 管道的作用很强大,|将正确的结果重定向给下一条命令;连接命令;一页一页地…

    2017-07-22
  • 硬盘的读写原理

     硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,…

    Linux干货 2015-04-10
  • 系统时间与硬件时间

    1. “系统时间”与“硬件时间”    系统时间: 一般说来就是我们执行 date 命令看到的时间,linux系统下所有的时间调用(除了直接访问硬件时间的命令)都是使用的这个时间。    硬件时间: 主板上BIOS中的时间,由主板电池供电来维持运行,系统开机时要读取这个时间,并根…

    Linux干货 2016-08-05
  • liunx的哲学思想

     Linux哲学思想 *一切皆文件(硬件、目录、普通文件、二进制文件等。) *小型,单一用途的程序 *链接程序,共同完成复杂的任务 *避免令人困惑的用户界面 *配置数据存储在文本中 解释:一切皆文件:是 Unix/Linux 的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型…

    Linux干货 2017-07-15
  • NFS实现共享wordpress

    实验环境 192.168.68.134 wordpress站点 nfs-server 192.168.68.144 nfs-client   实验要求 nfs server共享/var/www/html目录 nfs clinet挂载nfs-server共享的目录,部署wordpress   nfs server端 先部署wordpress…

    Linux干货 2017-10-21

评论列表(1条)

  • 马哥教育
    马哥教育 2018-02-07 10:16

    总结的比较全,最后的例子可以多想几种方式来处理~