Linux文件管理和Bash特性

一、Linux基本文件管理命令

主要介绍cp、mv、rm命令的基本用法以及使用示例

  • cp命令

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录

cp (选项) (参数)
常用选项:
-a:此参数的效果和同时指定"-dpR"参数相同,用于实现归档; 
-d:复制符号链接文件本身,而非其指向的源文件; 
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份; 
-v:详细显示命令执行的操作。

[root@Node1 桌面]# cp -r /var/log /var/www  /tmp/test/
  • mv命令

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。

mv(选项)(参数)
选项
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

[root@Node1 桌面]# mv ex3 new1
  • rm命令

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。

rm (选项)(参数)
选项
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
-v:显示指令的详细执行过程。
注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。

二、bash工作的基础特性

(1)命令执行返回值

在 Linux 下,所有的程序在结束时,都会返回一个数字值,这个值叫做返回值,或者称为错误号 ( Error Number )。

  • 命令执行的状态结果:

    bash通过状态返回值来输出此结果:

    成功:0

    失败:1-255

  • 命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;

(2)命令行展开

命令行展开特性可以一步完成需要分开成多步完成的操作

~:自动展开为用户的家目录,或指定的用户的家目录;

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

例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b

三、命令行展开的两个练习

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

[root@Node1 tmp]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: 已创建目录 "/tmp/a_c"
mkdir: 已创建目录 "/tmp/a_d"
mkdir: 已创建目录 "/tmp/b_c"
mkdir: 已创建目录 "/tmp/b_d"

(2)创建/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

[root@Node1 tmp]# 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}}
[root@Node1 tmp]# 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
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run
24 directories, 0 files

四、文件元数据的查看以及修改

元数据(Metadata),又称中介数据,主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能

  • 元数据定义:

    • 元数据就是数据的数据
    • 元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的
    • 任何文件系统中数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode..)等。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
  • 查看文件的元数据的命令:stat


[root@Node1 ~]# stat 1.sh 
  File: "1.sh"                                                     #文件名
  Size: 139         Blocks: 8        IO Block: 4096   普通文件      #文件类型
Device: fd00h/64768d    Inode: 813855      Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (  0/  root)  Gid: (  0/  root)    #文件权限以及所有者
Access: 2017-07-08 23:35:54.694489522 +0800                        #访问或执行时间
Modify: 2017-07-08 23:35:52.973490408 +0800                        #修改文件内容时间
Change: 2017-07-08 23:35:52.974490371 +0800                        #修改文件内容、更改所有者及权限时间
  • 修改文件时间戳命令:touch

touch命令有两个功能:一是用于更新已存在文件的时间戳信息;二是用来创建新的空文件。

touch(选项)(参数)
-a:或--time=atime或--time=access或--time=use 只更改access time;
-c:或--no-create 不建立任何文件;
-m:或--time=mtime或--time=modify 只更该modify time;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,[[CC]YY]MMDDhhmm[.ss];

[root@Node1 ~]# touch -t 200001012233.44 1.sh                     #将1.sh时间戳修改为指定时间
[root@Node1 ~]# stat 1.sh                                         #验证时间戳是否修改成功
  File: "1.sh"
  Size: 139         Blocks: 8        IO Block: 4096   普通文件
Device: fd00h/64768d    Inode: 813855      Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (  0/  root)  Gid: (  0/  root)
Access: 2000-01-01 22:33:44.000000000 +0800
Modify: 2000-01-01 22:33:44.000000000 +0800
Change: 2017-07-09 16:13:35.909026238 +0800


原创文章,作者:N27_what,如若转载,请注明出处:http://www.178linux.com/79554

(0)
N27_whatN27_what
上一篇 2017-07-09 15:29
下一篇 2017-07-09 16:29

相关推荐

  • linux系统上的特殊权限SUID,SGID,STICKY

    特殊权限:SUID SGID STICKY     linux的安全上下文:     1.进程以用户的身份运行,进程是发起此用户的代理,因此以此用户的身份和权限完成所有的操作。     2.权限匹配模型:     1)判断进程的属主,是否以被访问的文件属主。如果是,则应用属主权限…

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

    Linux的哲学思想 linux有个哲学的思想是一切皆文件 其中linux硬件设备也是通过文件来表示的 物理终端 物理终端指的是显示器等硬件终端设备,文件存在于 /dev/console 这个路径下 虚拟终端 虚拟终端指的是在linux命令行连接的终端,文件存在于 /dev/tty# [1,6] 这个路径下 串行终端 指的是使用计算机串行端口连接的终端设备,…

    Linux干货 2018-02-23
  • iptables

    Evernote Export   基于本机服务器的iptables: 创建、重命名、删除自定义chain ~]# iptables -N testchain ~]# iptables -nL Chain INPUT (policy ACCEPT) target     prot opt source    …

    Linux干货 2016-11-20
  • 14 用户组和权限管理4

    14 用户组和权限管理4 一、杂项知识整理 1、groups 查看用户所属组列表 [user1@localhost ~]$ groups user3 user1 2、文件属性:-rw-r–r–. 1 root root 0 8月   3 07:56 cgroup.clone_children &…

    Linux干货 2016-08-04
  • 用户和组相关配置文件

    用户和组的配置文件都在/etc目录下          /etc/passwd;        内容格式:用户名;加密后密码影子(1#);UID;GID;注释;家目录,默认shell    …

    Linux干货 2016-10-23
  • 正则表达式

    什么是正则表达式? 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”)。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,许多程序设计语言都支持利用正则表达式进行字符串操作。正则表达式是烦琐的,但它是强大的,学会之后的应用会让你除…

    Linux干货 2017-06-01