第二周作业

linux 文件管理命令 rm、mv、cp

  • rm

rm命令:remove

rm [OPTION]… FILE…

常用选项:

-i:interactive (默认rm是‘rm -i’的别名)

-f:force

-r: recursive

        -v:显示指令的详细过程

删除目录:rm -rf /PATH/TO/DIR

危险操作:rm -rf /*

注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站)

[root@localhost ~]# ls
123  123.txt  anaconda-ks.cfg  test  useradd1.sh
[root@localhost ~]# rm -fv 123.txt
removed ‘123.txt’
[root@localhost ~]#
  • mv

mv命令:剪切、改名

move (mv在同一个硬盘分区上操作是inode号是不变的,无论文件多大都很快,是因为只是修改了文件对应的指针。跨分区是执行复制操作,所以很慢)

   mv [OPTION]… [-T] SOURCE DEST

   mv [OPTION]… SOURCE… DIRECTORY

   mv [OPTION]… -t DIRECTORY SOURCE..    

   常用选项:

    -i:交互式;

    -f:force

[root@localhost test]# ls
123.txt
[root@localhost test]# mv 123.txt 1234.txt
[root@localhost test]# ls
1234.txt
[root@localhost test]# mv 1234.txt ..
[root@localhost test]# ls ../ | grep 1234.txt
1234.txt
  • cp

cp命令:复制单个或多个文件或者目录复制到指定目标文件或者目录

源文件;目标文件;

   单源复制:cp [OPTION]… [-T] SOURCE DEST

   多源复制:cp [OPTION]… SOURCE… DIRECT

    cp [OPTION]… -t DIRECTORY SOU

    单源复制:cp [OPTION]… [-T] SOURCE DES

    如果DEST不存在:则事先创建此文件,并

    如果DEST存在:

    如果DEST是非目录文件:则覆盖目标

    如果DEST是目录文件:则先在DEST目

    多源复制:cp [OPTION]… SOURCE… DIREC

     cp [OPTION]… -t DIRECTORY SO

    如果DEST不存在:错误;

    如果DEST存在:

    如果DEST是非目录文件:错误;

    如果DEST是目录文件:分别复制每个

    常用选项:

    -i:交互式复制,即覆盖之前提醒用户确

    -f:强制覆盖目标文件;

    -p:复制是保留文件的元数据信息

    -r, -R:递归复制目录;

    -d:复制符号链接文件本身,而非其指向

    -a:-dR –preserve=all, archive,用

    –preserv=

    mode:权限

    ownership:属主和属组

    timestamps: 时间戳

    context:安全标签

    xattr:扩展属性

    links:符号链接

    all:上述所有属性

[root@localhost ~]# cp -v file1 file2 file3 test/
‘file1’ -> ‘test/file1’
‘file2’ -> ‘test/file2’
‘file3’ -> ‘test/file3’
[root@localhost ~]# cp -rv ~/test ~/test1
‘/root/test’ -> ‘/root/test1/test’
‘/root/test/1234.txt’ -> ‘/root/test1/test/1234.txt’
‘/root/test/test1’ -> ‘/root/test1/test/test1’
‘/root/test/test1/1234.txt’ -> ‘/root/test1/test/test1/1234.txt’
‘/root/test/file1’ -> ‘/root/test1/test/file1’
‘/root/test/file2’ -> ‘/root/test1/test/file2’
‘/root/test/file3’ -> ‘/root/test1/test/file3

bash工作特性

  • 命令执行结果状态返回值

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

成功:0

失败:1-255

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

[root@localhost ~]# ls 
file1  file2  file3
[root@localhost ~]# echo $?
0
[root@localhost ~]# ls file4
ls: cannot access file4: No such file or directory
[root@localhost ~]# echo $?
2
  • 命令展开

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

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

  • 命令展开演示

[root@localhost ~]# mkdir /tmp/{a,b}{_c,_d}
[root@localhost ~]# ls /tmp/
a_c  a_d  b_c  b_d
[root@localhost ~]# mkdir -p /tmp/mylinux/{{bin,dev,lib64,proc,sbin,sys,tmp},
{boot/grub,lib/modules,var/{lock,log,run},usr/local/{bin,sbin},etc/{rc.d/init.d,sysconfig/network-scripts}}}
[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
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

文件元数据信息

文件元数据信息包括:

文件名称、属主属组、文件访问权限、uid、gid、三个时间戳(centos7是四个)、inode号等等

访问时间access time:读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令。ls、stat命令都不会修改文件的访问时间。

修改时间modify time:修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间。

状态改变时间change time:是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。

查看命令stat filename

[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 13:29:58.553193471 -0500
Modify: 2016-11-24 13:29:29.081193305 -0500
Change: 2016-11-24 13:29:29.081193305 -0500

修改文件时间戳:touch [option] filename

touch命令:

touch – change file timestamps

touch [OPTION]… FILE…

-c: 指定的文件路径不存在时不予创建;

-a: 仅修改access time;

-m:仅修改modify time;

-t 指定时间:[[CC]YY]MMDDhhmm[.ss]

[root@localhost ~]# touch -a file1   ##修改文件的访问时间
[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 14:44:08.509218528 -0500  ##该时间较之前有更新
Modify: 2016-11-24 13:29:29.081193305 -0500
Change: 2016-11-24 14:44:08.509218528 -0500
 Birth: -
[root@localhost ~]# touch -m file1       ##修改文件的编辑时间
[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 14:44:08.509218528 -0500
Modify: 2016-11-24 14:44:33.556218669 -0500  ##该时间较之前有更新
Change: 2016-11-24 14:44:33.556218669 -0500
 Birth: -
[root@localhost ~]# touch -t 201612062130.30 file1    ##指定文件的访问时间和修改时间
[root@localhost ~]# stat file1
  File: ‘file1’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 83233005    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-12-06 21:30:30.000000000 -0500
Modify: 2016-12-06 21:30:30.000000000 -0500
Change: 2016-11-24 14:47:16.871219588 -0500
 Birth: -

文件别名以及引用命令结果

alias命令

alias NAME='COMMAND' 仅对当前shell进程有效

可以加进~/.bashrc配置文件中

[root@director ~]# alias network='service network restart'
[root@director ~]# network
正在关闭接口 eth0:                                        [确定]
正在关闭接口 eth1:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0: 
正在决定 eth0 的 IP 信息...完成。
                                                           [确定]
弹出界面 eth1: Determining if ip address 10.10.10.1 is already in use for device eth1...
                                                           [确定]

引用命令的执行结果:

使用$()或者“

rootuid=`id -u root` 或者 rootuid=$(id -u root)

练习

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

ls -d /var/l*[0-9]*[[:lower:]]

2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

ls -d /etc/[0-9]*[^0-9]

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

ls -d /etc/[^[:alpha:]][[:alpha:]]*

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

touch /tmp/tfile-$(date +%F-%H-%M-%S)

5、复制/etc目录下,所有以p开头,以非数字结尾的文件或目录至/tmp/mytest1目录;

cp -a /etc/p*[^0-9] /tmp/mytest1

6、复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mytest2目录下;

cp -a /etc/*.d /tmp/mytest2

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

find /etc -name [lnm]*.conf -a -type f -exec cp -a {} /tmp/mytest3 \;

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

(0)
N25_NvaN25_Nva
上一篇 2016-12-08 21:18
下一篇 2016-12-09 10:52

相关推荐

  • 文件的归档和压缩

    文件的归档和压缩 •一、tar命令使用 •二、其他压缩方式 •三、进程管理基本概念。 前言: 本节主要介绍文件的归档和压缩相关方法。归档和压缩有利于linux系统中文件的管理和磁盘空间的利用,善于利用归档和压缩能为我们工作中带来很多便捷。另外将简单介绍进程的一些概念,方便下一节进程管理内容的学习。 一、 tar命令使用(tar命令用于文件…

    2017-04-16
  • N22-第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# ll -d  /etc/skel/drwxr-xr-x. 3 root root 74 3月&…

    Linux干货 2016-09-19
  • Nginx相关配置及其应用

    LB Cluster: 传输层:lvs、nginx、haproxy 应用层:nginx(http, https, smtp, pop, imap), haproxy(http), httpd(http/https), ats, perlbal, pound, … nginx load balancer: tcp/udp   nginx …

    Linux干货 2016-11-11
  • Linux运维之基础拾遗

    博客具体内容请移步博客园: http://www.cnblogs.com/ITOps/p/6151766.html

    Linux干货 2016-12-09
  • 马哥教育网络班22期+第1周课程练习

    week1作业: 1.描述计算机的组成及其功能。    计算机的组成:    CPU:控制器、运算器、寄存器、CPU缓存(RAM,一级、二级、三级缓存)    控制器(Control):是整个计算机的中枢神经,其功能是对程序规 定的控制信息进行解释,根据其要求进行控制,…

    Linux干货 2016-08-15
  • LVM逻辑卷管理

    一、简述 什么是逻辑卷?LVM(Logical Volume Manager)利用Linux内核device-mapper实现存储系统的虚拟化。通过LVM,把底层存储硬件抽象化成存储逻辑块,再将这些逻辑块集合构成存储池,从存储池空间划分分区,可以简单地扩大或缩小分区,而不用担心硬盘没有足够的连续空间。 使用逻辑卷分区有什么用?使用逻辑卷分区重点在于可以弹性地…

    Linux干货 2016-09-06

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 15:43

    赞,写的比较详细~~~继续加油~