N31-第二周作业—文件的管理

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
(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
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

10021749_10021749_1324540636765_mthumb

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

1、显示当前工作目录(CWD:current work directory)

pwd:(printing working directory)显示当前shell CWD的绝对路径

pwd -L:显示链接路径(默认)

-P:显示真实的物理目录

![pwd](C:\Users\贾理宽\Desktop\pwd.png

pwd

2、更改目录:cd

使用绝对或相对路径:

绝对路径:cd /app/zhen/

相对路径:cd app/zhen

切换至父目录:cd ..

切换至当前用户主目录:cd

切换至以前的工作目录:cd –

cd – 工作原理:当用户切换目录后,由变量OLDPWD将之前的工作目录记录下来,变量OLDPWD记录的是哪个目录,则cd -便返回哪个目录,但也只能保存上一个工作目录。选项: -P:进入真实物理路径

eg:cp -P /bin

相关的环境变量:

PWD:查看当前目录路径。查看变量PWD:echo $PWD

OLDPWD :上一次目录路径。查看变量OLDPWD:echo $OLDPWD

cd

3、列出目录内容:ls(list)

列出当前目录的内容或指定目录

  • ls=’ls –color=auto’

用法: ls [options] [files_or_dirs]

示例:

  • ls -a 显示所有文件,包括隐藏文件

  • ls -A 显示除.和..之外的所有文件

  • ls -l =ll,显示额外的信息

每个文件有三个时间戳:访问时间(atime)、文件内容修改时间(mtime)、文件元数据改变时间(

ctime)

查看方式:

  • ll –time=ctime(元数据改变时间)

  • ll –time=atime(访问时间)(mtime用ll便可查看)

  • ls -R(–recursiver) 递归列出目录和文件

  • ls -r (–reverse)将当前目录下的文件逆序显示

  • ls -ld 目录和符号链接信息

  • ls -1 文件分行显示

  • ls –S 按从大到小排序

  • ls –t 按mtime从新到旧排序排序

  • ls –ut 显示并按atime从新到旧排序

  • ls -ct 显示并按ctime从新到旧排序

  • ls –U 按目录存放顺序显示

  • ls –X 按文件后缀排序

  • ls -F 显示分类

  • ls -lh 将额外信息的文件大小以K、M、G显示

ls1

4、查看文件状态:stat

文件:metadata, data

文件的三个时间戳:

  • access time:访问时间,atime,读取文件内容

  • modify time:修改时间,mtime,改变文件内容(数据)

  • change time:改变时间,ctime,元数据发生改变

stat

5、创建空文件和刷新时间:touch

touch [OPTION]… FILE…

  • -a 仅改变 atime 和ctime

  • -m 仅改变 mtime 和ctime

  • -t [[CC]YY]MMDDhhmm[.ss]:指定atime 和mtime 的时间戳

  • -c 如果文件不存在,则不予创建(刷新时间戳)

eg:创建以f开头的空文件

touch

6、复制文件和目录:cp(copy)

  • cp [OPTION]… [-T] SOURCE DEST

  • cp [OPTION]… SOURCE… DIRECTORY

  • cp [OPTION]… -t DIRECTORY SOURCE…

cp SRC DEST

     SRC 是文件:

             如果目标不存在:新建DEST,并将SRC 中内容填充至

DEST中如果目标存在:

如果DEST是文件:将SRC 中的内容覆盖至DEST中

(基于安全,建议为cp 命令使用-i 选项)

如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填至新文件中

cp SRC… DEST

SRC… :多个文件

DEST必须存在,且为目录,其它情形均会出错;

cp SRC DEST

SRC 是目录:此时使用选项:-r

如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST 中;

如果DEST 存在:

如果DEST 是文件:报错

如果DEST 是目录:在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中cp1

(注:复制成功后,虽然DEST的内容和SRC的一样,但是元数据不同。若要使DEST的内容和元数据均与SRC一样,则需要用到cp选项。)

cp常用选项:

  • -i:覆盖前提示     –n:不覆盖,注意两者顺序-ni(注:cp=’cp-i’,所以使用方式为\cp-ni,才会有提示)

  • -r,-R:递归复制目录及内部的所有内容(复制目录)

cp2

  • -a:归档,相当于-dR –preserv=all,将SRC的所有属性同步至DEST。

  • -d:–no-dereference –preserv=links(不复制原文件,只复制链接名)

  • –preserv[=ATTR_LIST]

  • mode:权限
  • ownership:属主属组
  • timestamp:时间戳
  • links:链接
  • xattr:扩展
  • context:上下文
  • all
  • -p:等同–preserv=mode,ownership,timestamp

  • -v:–verbose

  • -f:–force

  • -u:–update 只复制源比目标更新文件或目标不存在的文件

  • –backup=numbered 目标存在,覆盖前先备份加数字后缀

cp3

7、移动和重命名文件:mv

  • mv [OPTION]… [-T] SOURCE DEST

  • mv [OPTION]… SOURCE… DIRECTORY

  • mv [OPTION]… -t DIRECTORY SOURCE…

若DEST不存在,SRC是文件,则将SRC移动到目标目录下,并重命名为DEST。

若DEST为目录,SRC是文件,则将SRC移动到DEST下。

(mv移动并重命名最多只能对一个文件进行重命名)

常用选项:

  • -i:交互式
  • -f:强制

mv1

8、删除:rm

rm [OPTION]… FILE…

rm=’rm -i’删除时提示

常用选项:

  • -i:交互式

  • -f:强制删除

  • -r:递归删除目录树

  • –no-preserve-root,等同于rm -f /*,删除所有目录与文件

eg:

1、 删除当前目录下内容rm当前目录下内容

2、删除某目录下内容

rm某目录下内容

9、目录操作

(1)tree 显示目录树

-d:只显示目录

-L level:指定显示的层级数目

-P pattern:只显示由指定pattern匹配到的路径

tree

(2)mkdir 创建目录

-p:存在于不报错,且可自动创建所需的各目录

-v:显示详细信息

-m MODE: 创建目录时直接指定权限

mkdir

(3)rmdir 删除空目录

-p:递归删除父空目录

-v:显示详细信息

(4)rm -r 递归删除目录树

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

1、bash的工作特性之命令执行状态返回值

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

  • 成功:0
    失败:1-255

命令执行完成后,其状态返回值保存于bash的特殊变量$?中,可以用echo$?来查看最近一条命令的状态;

命令正常执行时,有的会有命令返回值;根据命令及其功能不同,结果各不相同。

   eg:新建文件touch命令,若是正确的命令,返回值为:0;当输入为无效命令时,返回值则为:1-255之间

bash命令返回值

2、命令行展开

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

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

三、使用命令行展开功能

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

a_c,a_b

2、创建/app/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

创建1

创建2

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

1、文件的数据分为两种:一种是描述数据属性的一类,一种就是数据本身。

2、文件的元数据查看为stat命令,示例如下所示:

stat

其中:

  • file(文件):文件名
  • size(大小):文件大小
  • block(块):文件占了多少数据块的块大小
  • IO Block(IO块):文件所占数据块的块大小
  • Device(设备):硬件,说明该文件在硬盘的那个柱面
  • Inode : 节点号
  • links:硬链接
  • 权限:第一个Access权限,
  • Uid : 该文件所属的属主,
  • Gid : 该文件所属的属组
  • context(环境): 上下文(发生事情的环境, 背景, 来龙去脉; 前后关系)
  • accesstime(最近访问):文件上一次的访问时间
  • modifytime(最近改动):文件上一次修改的时间
  • changetime(最近改动):文件上一次属性更改的时间

3、修改文件时间戳:touch

格式:touch [OPTION]…FILE…

OPTION:

  • -a:仅改变 atime 和ctime

  • -m:仅改变 mtime 和ctime

  • -t [[CC]YY]MMDDhhmm[.ss]:指定atime 和mtime 的时间戳

五、定义一个命令的别名,并在命令中引用另一个命令的执行结果

查看别名:alias,可查看当前所有别名。

定义别名:alias NAME=’COMMAND’

撤销别名: unalias NAME

  • eg:将touch定义为touch -m,即:改变文件mtime和ctime,然后撤销别名touch。

touch-m

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

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

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

  • ~]# ls -d /etc/[0-9]*[^0-9]

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

  • ~]# ls -d /etc/[^a-Z][a-Z]*

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

  • ~]# touch /app/tfile`date +%Y-%m-%d-%H-%M-%S`

十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

  • ~]# cp -r /etc/p*[^0-9] /tmp/mytest1

十一、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

  • ~]# cp -r /etc/*.d /tmp/mytest2

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

  • ~]# cp -r /etc/[1mn]*.conf /tmp/mytest3

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

(1)
熊掌拨清波熊掌拨清波
上一篇 2018-07-04
下一篇 2018-07-05

相关推荐