第二周作业

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
下一篇 2016-12-09

相关推荐

  • First Day

    learning

    2018-03-26
  • Linux发展史

    Linux发展史 摘要:因为学习linux过程中对整个linux发展历史只有一些模糊的理解,以本文来对linux发展史进行梳理来加深学习。   一、linux是什么 linux就是一套操作系统,如下图操作系统就是内核与系统调用接口那 Linux只是一套操作系统并不包含其他应用程序。 Linux提供了一个完整的操作系统当中最底层的硬件控制和资源管理的…

    Linux干货 2016-10-14
  • 网络基础命令与配置文件地址

    centos6查看网卡dmesg | grep -i ethethtool -i eth0卸载网卡驱动modprobe -r e1000rmmod e1000装载网卡驱动modprobe e1000网络配置,静态指定system-config-network-tui 字符界面式网络配置ip addr add IP地址 via 网关IP地址动态分配在/etc/…

    2017-09-09
  • memcache

      memcached: memcached is a high-performance, distributed memory object caching system, generic in nature, but&nbsp…

    Linux干货 2016-11-01
  • 马哥教育网络班21期-第二周课程作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp即copy的简写,我们可以用它来复制一些文件即将,源文件的数据流复制到目的文件中。和下面要讲的rm,mv,一样都是一些非常基础的命令。关于这个命令,我们有个小窍门,那就是根据 ls file这个命令是否执行成功来判断file文件是否存在。 关于cp,我们有一些要点要注意: cp…

    Linux干货 2016-07-07
  • vim

    VIM是什么? Vim是从VI发展出来的一个文本编辑器,拥有许多丰富的功能,便于编程开发,在程序员中被广泛使用,是类Unix系统用户最喜欢的功能强大的跨平台文本文件编辑工具。 为什么要用VIM? vi编辑器是所有类UNIX系统下标准的编辑器,他是我们使用Linux系统不能缺少的工具。对于所有类UNIX系统的任何版本,vi编辑器是完全相同的。而vim是从VI发…

    2017-06-07

评论列表(1条)

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

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