W2-文件操作

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

文件操作命令

cp命令:copy

用于拷贝文件或目录至目标位置,语法:

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

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

cp [OPTION]… -t DIRECTORY SOURCE…

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

(1)如果DEST不存在复制的文件,则事先创建与源文件文件名相同的文件,并复制源文件的数据至DEST中:

2-1

(2)如果DEST存在与复制文件文件名相同的文件,则覆盖目标文件:

2-2

(3)可以将原文件复制至目标,并且改名:

2-3

多源复制:

(1)如果DEST不是目录,则报错:

2-4

(2)如果DEST是目录,则分别复制每个文件至目标目录,并保持原名:

2-5

常用选项:

-i,–interactive,交互式:

在覆盖文件之前提示用户确认,默认的cp命令就是cp -i的别名。

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

-R,-r,–recursive,递归复制,递归复制目录,即把源目录以及源目录中的文件递归复制到目标目录。

–preserve=[]:保留指定的文件属性,文件属性有:

mode:权限

ownersihp:属主和属组

timestamp:时间戳

context:安全标签

xatrr:扩展属性

link:符号链接

all:上述所有属性

 

mv命令:move

移动或重命名文件,用法与cp命令基本一致,语法:

mv [OPTION]… [-T] SOURCE DEST

mv [OPTION]… SOURCE… DIRECTORY

mv [OPTION]… -t DIRECTORY SOURCE…

可以使用mv命令对目标文件进行改名操作:

2-7

常用选项:

-b:在覆盖目标文件后备份原文件:

2-6

-f,–force:在覆盖文件之前不提示。

-R,-r,–recursive:递归移动目录,将源目录及源目录内所有文件递归移动至目标目录。

rm命令:remove

删除文件或目录,默认情况下如果rm命令不加选项,则无法删除目录。语法:

rm [OPTION]… FILE…

常用选项:

-i:interactive,在删除文件前提示用户是否确定删除。

-r,-R,–recursive:递归删除,即删除目录同时及其内部包含的内容。

-f:强制删除,在删除任何文件或目录前不提示。

 

文件查看命令

cat命令:

连接文件并打印至标准输出设备中,即显示文件内容,语法:

cat [OPTION]… [FILE]…

cat命令常用于查看文件内容,一般情况下不使用任何选项即可,如:

2-8

常用选项:

-n –number:显示内容加上行号:

2-9

tac命令:

和cat命令类似,也是在标准输出上显示文件内容,不过是将文件内容反向显示:

2-10

more命令:

分屏查看文件命令,以一页一页的显示方便使用者逐页阅读。语法:

more [options] file […]

常用选项:

-number:number为数字,如:more -10 /etc/rc.d/init.d/functions,即10行10行显示文件内容。

less命令:

分屏查看文件命令,和more相反。语法:

more [options] file […]

head命令:

查看文件的前n行内容,不加选项,默认显示文件的前10行内容。语法:

head [OPTION]… [FILE]…

常用选项:

-n:显示文件的前n行内容。

tail命令:

查看文件的后n行内容,不加选项,默认显示文件的后10行内容。语法:

tail [OPTION]… [FILE]…

常用选项:

-n:显示文件的后n行内容。

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

(1)bash通过命令执行状态返回值:

输出结果为:0,表示命令执行成功,非0(1-255)表示命令执行失败

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

2-11

2-12

(2)bash的基础特性之:命令行展开

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

2-13

2-14

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

2-15

3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

[root@centos7 ~]#mkdir -pv /tmp/{a_,b_}{c,d}:

2-16

(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@centos7 ~]#mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/rc.d/init.d,sysconfig/network-scritps,lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}:

2-17

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

文件的元数据信息包括:

(1)文件名

(2)文件大小

(3)文件块数

(4)块大小

(5)文件类型

(6)文件所在设备

(7)文件inode

(8)文件硬链接次数

(9)文件权限

(10)文件属主ID

(11)文件属组ID

(12)文件安全标签

(13)文件的atime时间(用cat,more文件等查看的时间)

(14)文件的mtime时间(文件最近一次修改时间)

(15)文件的ctime时间(文件元数据改变时间)

文件的元数据使用stat命令查看:

2-18

修改文件的时间戳使用touch命令:

touch命令用于更新文件的atime和mtime,默认情况下,如果文件不存在,则创建一个空文件,除非指定-c或-h选项。语法:

touch [OPTION]… FILE…

主要选项:

-c,–no–create:如果指定了-c选项,如果文件不存在,则不创建新的空文件。

-a:只改变文件的atime

-m:只改变文件的mtime

-t STAMP:使用[[CC]YY]MMDDhhmm[.ss]这种格式设置文件的atime,mtime,这种情况下ctime不会随着mtime的改变而更新:

2-19

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

(1)可以使用alias命令来定义一个命令的别名,如:

2-20

定义的别名只对当前shell有效,如果想对当前用户生效,需要将别名加入.bashrc文件中并刷新,如果想对所有用户都生效,则需要将别名加入/etc/bashrc文件中。

使用unalias命令来取消别名:

[root@centos7 ~]#unalias cdnet

(2)使用反引号`command`或$(command)可以在命令中引用另一个命令的执行结果,如:

2-21

2-22

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

[root@centos7 ~]#ll -d /var/l[0-9]*[[:lower:]]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[root@centos7 ~]#ll -d /etc/[0-9]*[a-z]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[root@centos7 ~]#ll -d /etc/[^a-z][a-z]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@centos7 ~]#touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

[root@centos7 ~]#mkdir -p /tmp/mytest1

[root@centos7 ~]#cp -rv /etc/p*[^0-9] /tmp/mytest1/
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

[root@centos7 ~]#mkdir -p /tmp/mytest2

[root@centos7 ~]#cp -rv /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

[root@centos7 ~]#mkdir -p /tmp/mytest3

[root@centos7 ~]#cp -rv /etc/{l,m,n}*.conf /tmp/mytest3

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

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班