Linux文件管理命令及命令执行状态返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件管理命令及命令执行状态返回相关的知识,希望对你有一定的参考价值。

1、文件管理

在使用Windows操作系统时,我们通常用左键选中文件或文件夹,然后用右键进行复制、剪切、粘贴、删除。若文件不存在则用右键直接进行创建。而在Linux操作系统(命令行界面)上,可以用cp,mv,rm,mkdir、rmdir命令进行文件管理。

1.1 创建目录 mkdir

使用方式 mkdir [OPTION]… DIRECTORY…
常用选项:
-p, --parents 递归创建,如果最终要创建的目录的上一级或上几级目录不存在,则会先创建上一级目录或上几级目录
-v 显示命令执行的详细结果,通常与-p一同使用
-m MODE | 在创建目录时直接给定目录权限,如果省略则给定默认权限

注意:路径基名方为命令作用的对象,基名之前的路径必须存在。

示例:递归创建目录,并显示创建过程
技术分享图片

1.1 删除空目录 rmdir

只能删除空目录,非空目录则无法删除
使用方式:rmdir [OPTION]… DIRECTORY…
常用选项:
-p 递归删除,当删除完基名目录时,如果其父目录也为空,则一并删除;依此类推,直到非空目录为止
-v 显示命令执行的详细结果,通常与-p一同使用
示例:递归删除目录,并显示删除过程
技术分享图片

1.1 复制命令 cp

cp命令,即copy,用于实现复制功能,使用方式如下:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE

1.1.1 复制文件

1)如果目标不存在则会新建目标文件,并将源文件内容复制到目标文件中
2)如果目标存在:
(1)如目标为目录,则在该目录下新建与源文件同名文件,再将源文件内容填充到新建文件中
(2)如目标为文件,则将源文件内容覆盖到该文件

1.1.2 复制目录

复制目录必须使用-r选项
1)如果目标不存在则会新建目录,并将源目录中的所有内容复制到新建目录中
2)如果目标存在(此时目标必须为目录否则会报错),则先会新建与源目录同名目录,然后将源目录中的所有内容复制到新建目录中

1.1.3 复制命令常用选项:

-a 或者--archive 该选项和-dR选项效果一样
-b:覆盖已存在的文件目标前将目标文件备份
-d 等同于--no-dereference --preserve=links当复制符号连接时,不跟踪符号链接所指向的源文件,仅复制符号链接
-f:若复制的文件或文件夹已存在,会进行强制覆盖
-i:覆盖文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归复制,即复制源目录下的所有文件及子目录;
-s:对源文件建立符号连接,而非复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-v:显示命令执行过程

1.1.2 复制操作示例

如将某文件复制到某一目录:
首先我们用ls 命令查看一下当前目录的文件
然后将test1文件复制到当前目录下的first目录中
再用ls命令查看first目录
技术分享图片
再将first 目录复制到当前目录下的second目录:
技术分享图片

1.2 移动命令 mv

mv 即move,用于移动或者重命名文件,使用方式如下:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

1.2.1 移动单个文件

1)如果目标不存在,事先创建此文件,并复制源文件的数据流至目标中,然后将源文件删除,相当于剪切操作。
2)如果目标存在
(1)目标是非目录文件,则覆盖目标文件,然后将源文件删除,相当于重命名
(2)目标是目录文件,则现在目标目录下创建一个与源文件同名的文件,并将源文件数据流复制到新创建的目标文件中,然后将源文件删除。

1.2.2 移动多个文件

如果目标不存在,则会报错;
如果目标存在,但目标不是目录,则也会报错;
如果目标存在,且目标是目录,则会分别复制源文件中的每一个文件至目标目录中,并保持原名,然后将源文件删除。

1.2.3 移动命令常用选项

-i 交互式移动,即覆盖之前提醒用户确认。
-f 强制覆盖目标文件,即不需要用户再次确认
示例:
技术分享图片

1.3 删除命令

rm ,即remove,删除文件或目录
使用方式:rm [OPTION]… FILE…
选项 :
-i 交互式删除,即删除之前提醒用户确认
-f 强制性删除,即不再提醒用户确认,直接进行删除操作
-r, -R, –recursive ,用于删除目录及目录下的所有内容

rm命令需谨慎使用,可新建一个目录充当回收站:当想删除某文件或目录时,可先用mv命令将文件或目录移动至该目录下,确认后可再使用rm命令进行删除。

2、命令执行状态返回值

当命令成功执行时,bash将会显示我们想要的结果,若命令执行失败时则bash反馈错误信息,示例如下:
技术分享图片
而bash会将上一条命令执行状态以数值的形式保存在$?(一个特殊变量)中,我们可以用echo命令查看这个变量:echo $?,0表示命令执行成功,1-255则表示命令执行失败,如:
技术分享图片

3、命令行展开

bash提供的一种福利,让用户输入命令更加方便快捷
~:展开为用户的家目录,如:
技术分享图片
~ username :展开为某用户的家目录,如:
技术分享图片
{} 用于展开多个路径,如:创建/tmp目录下的:a_c,a_d,b_c,b_d

技术分享图片

在/tmp/mylinux下创建如下目录:
/tmp/mylinux
├── bin
├── boot
│?? └── grub
├── dev
├── etc
│?? ├── rc.d
│?? │?? └── init.d
│?? └── sysconfig
│?? └── network-scripts
├── lib
│?? └── modules
├── lib64
├── proc
├── sbin
└── sys

实际操作及结果如下:
技术分享图片

4、文件元数据信息

在Windows 操作系统中,我们可以使用右键-属性来查看一个文件的属性信息(如文件大小、类型、创建时间等等),而在linux操作系统中,我们可以使用stat命令来实现该操作,如:
技术分享图片
我们将这些信息称之为文件元数据信息,即用来描述文件属性(类似于人的姓名,年龄,籍贯等)
File:文件名;
Size:文件占据字节大小
Blocks:文件占据了多少个数据块大小
IO Block:文件占据数据块的块大小
Device:文件所在硬盘的柱面
Inode:节点号
Links:链接数
Access(第一个):权限
Uid:文件的属主
Gid:文件的属组
Context:安全上下文
Access(第二个):文件上一次的访问时间(通过cat,more等命令查看其内容)
Modify:文件上一次修改的时间(用vim等修改其内容)
Change:文件上一次属性更改的时间(修改数组,属主等)
其中Access,Modify,Change这个三个时间信息为文件的时间戳信息,我们可以使用touch命令来修改时间戳信息
使用方式如下:
touch [OPTION]… FILE…
选项
-a: 仅修改 上次访问时间;
-c: 当文件不存在时不予创建该文件;
-m:仅修改 上次修改时间;
-t [[CC]YY]MMDDhhmm[.ss] 修改时间戳为某时间
示例:将A文件访问时间改为2019-10-08 23:12
技术分享图片

5、命令别名以及管道

5.1命令别名

类似于一个人有一个正式姓名,还有其他的称谓(如儿时取得小名,别人取的外号等等),我们可以给命令也取一个别的名称,即为命令别名。实现方式
alias [-p] [name[=value] ... ] 如:alias lsA=‘ls /home/bowen/A
技术分享图片

5.2管道

在实际生活中我们可以用管道将物品从一个地方输送到另一个地方,而在Linux系统中也有管道,可以将某个命令的结果传递给下一个命令。管道符号为|
使用方式:
command1|command2.......
示例:查看passwd文件的第6到10行
技术分享图片

6.显示 /var目录下所有以1开头,小写字母结尾,中间至少出现一位数字(可以有其他数字)的文件或目录

技术分享图片

7.显示 /etc目录下以数字开头,且以非数字结尾的文件或目录

技术分享图片

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

技术分享图片

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

技术分享图片

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

技术分享图片

11.复制/etc下所有以.d结尾文件或目录到/tmp/mytest2目录中

技术分享图片

12.复制/etc下所有以1或m或n开头,以.conf结尾文件到/tmp/mytest3目录中

技术分享图片

以上是关于Linux文件管理命令及命令执行状态返回的主要内容,如果未能解决你的问题,请参考以下文章

linux下的进程管理(进程的基本了解及查看pstree,ps,pgrep命令)

Linux基本命令详解《二》(Linux中对目录和文件管理所使用的命令)

LINUX用户用户组及权限管理

Linux 文件系统管理

linux用户管理初级(上)

12个Linux进程管理命令介绍