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

W2-文件操作

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

(0)
王老汉王老汉
上一篇 2018-07-01
下一篇 2018-07-01

相关推荐

  • 学习笔记(14)

    学习笔记(14)

    Linux笔记 2018-04-30
  • TCP/IP协议详解

    在前面的网络基础内容中我们了解了TCP/IP协议的定义以及TCP/IP模型的分层结构即:应用层,传输层,Internet层以及网络访问层。今天我来带大家详细了解下TCP/IP协议栈中的典型协议:传输层的TCP、UDP协议,网络层的IP协议。

    2018-05-06
  • LVS调度方法及nginx模块简介

    LVS调度方法及nginx模块简介

    Linux笔记 2018-06-05
  • 文本处理工具

    文本处理小工具 tr tr [选项]…SET1 [SET2] 从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。 ​ -c:取字符集的补集 ​ -d:删除所有属于第一字符集的字符 ​ -s:把连续重复的字符以单独一个字符表示(压缩) ​ -t:将第一个字符集对应字符转化为第二字符集对应的字符 #echo ‘tank zhang’ |tr a-z A…

    Linux笔记 2018-05-10
  • linux魔鬼训练营初体验

    听话照做

    2018-04-01
  • shell脚本编程基础——循环用法

    本节索引: 一、if、case条件判断 二、for、while及until循环 三、循环控制语句continue、break、shift及select菜单 四、信号捕捉trap   在前面的基础编程内容中,我们已经学习了shell脚本的顺序执行及选择执行,通过这两种方式,可 以帮我们解决一些简单需求,但要想在更复杂的场景中使用的话,就需要掌握循环执…

    2018-05-10