linux文件管理相关命令详解

时间:2022-12-07 16:29:54

1、文件通配符,可参考“man 7 glob”内容;

(1)常用通配符:

    *:表示匹配零个或多个字符

    ?:表示任何单个字符

    ~:表示当前用户家目录

    ~USERNAME:表示某用户的家目录

    ^:表示取反

    []:表示指定范围内的任意单个字符

    [0-9]:表示匹配一个数字范围

    [a-z]:表示匹配不包含Z的所有字母

    [A-Z]:表示匹配不包含a的所有字母

    [:digit:]:表示所有的数字

    [:lower:]:表示所有的小写字母

    [:upper:]:表示所有的大写字母

    [:alpha:]:表示所有的字母

    [:alnum:]:表示所有的数字或字母

    [:space:]:表示所有呈水平或垂直排列的空白字符

    [:blank:]:表示所有呈水平排列的空白字符

    [:punct:]:表示所有的标点符号

    [:cntrl:]:表示所有的控制字符

    [:graph:]:表示所有的可打印字符,不包括空格

    [:print:]:表示所有的可打印字符,包括空格

    [:xdigit:]:表示所有的十六进制数


(2)使用举例:

a、显示/var目录下所有以l字母开头,以小写字母结尾,且中间出现至少一位数字的文件或目录

linux文件管理相关命令详解

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

linux文件管理相关命令详解

c、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

linux文件管理相关命令详解


2、stat命令

该命令可以查看文件的元属性

linux文件管理相关命令详解

其中:

Access:访问时间,又称atime,读取文件内容的时间

Modify:修改时间,又称mtime,修改文件数据内容的时间

Change:改变时间,又称ctime,修改文件属性信息的时间


3、touch命令

用法:touch [选项]... 文件...

常用选项:

-a:若文件存在,则改变atime时间,ctime时间也会随之改变

-c:不创建任何文件,若文件存在则更新所有时间

-m:若文件存在,则改变mtime时间,ctime时间也会随之改变

-t:指定创建文件的时间属性,指定时间格式: [[CC]YY]MMDDhhmm[.ss]


4、mkdir命令

用法:mkdir [选项]... 目录...

常用选项:

-v:每次创建新目录都显示信息

-p:需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理(相当于递归创建)


练习:

(1)如何创建 dir1/x , dir1/y , /dir1/x/a , /dir1/x/b , /dir1/y/a , /dir1/y/b 目录

# mkdir -pv dir1/{x/{a,b},y/{a,b}}或# mkdir -pv dir1/{x,y}/{a,b}

(2)如何创建/dir2/x , /dir2/y , /dir2/x/a , /dir2/x/b 目录

# mkdir -pv dir2/{x{a,b},y}

(3)如何创建/dir3 , /dir4 , /dir5 , /dir5/dir6 , /dir5/dir7 目录

# mkdir -pv dir{3,4,5/dir{6,7}}


5、rmdir命令

只能删除空目录

用法:rmdir [选项]... 目录...

常用选项:

-v:输出处理的目录详情

-p:删除指定目录及其上级文件夹(相当于递归删除)


6、cp命令

用法:cp [选项]... [-T] 源文件 目标文件
 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...

(1)若复制的源为一个文件,目标也为一个文件,且目标文件不存在时,则创建以目标文件命名的文件,并将原文件的内容填充至新建文件中(相当于复制并改名)

(2)若复制的源为一个文件,目标也为一个文件,且目标文件已存在时,则覆盖目标文件(相当于覆盖)

(3)若复制单个文件到某目录下,且目标目录下存在与源文件名相同的目录,则会直接复制到同名的同名的目录下

(4)若复制多个文件到一个不存在的文件中,则会报错(源为多个文件时目标必须是目录)

(5)若复制一个目录到一个不存在的文件时,则会以不存在的文件名为目录名创建一个目录,并将源目录下的内容复制到新建目标目录下(也相当于复制并改名,复制目录时必须跟-r选项)

(6)若复制一个目录到另一个目录,且目标目录中存在一个与源目录同名的文件时,将会报错

常用选项说明:

-a:归档,相当于-dR --preserve=all,可以保留源文件的所有属性

-d:等于--no-dereference --preserve=links,不复制源文件,只复制链接文件

-f:若目标文件已存在,则将其移除并重试

-i:覆盖前询问

-n:不覆盖已存在的文件

如果同时制定-i、-n ,仅最后一个生效。

-p:等同于--preserve=mode,ownership,timestamps

--preserve[=ATTR_LIST]

        more:权限

        ownership:属主属组

        timestamps:时间戳

        context:环境

        links:链接

        all:以上全部属性

-r -R:递归复制目录及其子目录内的所有内容

-v:显示过程

练习:

(1)定义别名命令baketc,实现将/etc/目录下所有文件备份到/testdir独立的子目录下,并要求子目录格式为backupyyyy-mm-dd,要求备份过程可见

# alias baketc='cp -va /etc /testdir/backup`date +%F`'

(2)创建/testdir/rootdir目录并复制/root下所有文件到该目录内,要求保留原有权限

# cp -r --preserve=mode /root/ /testdir/rootdir


7、mv命令

将源文件重命名为目标文件,或将源文件移动至指定目录。

用法:mv [选项]... [-T] 源文件 目标文件
 或:mv [选项]... 源文件... 目录
 或:mv [选项]... -t 目录 源文件...

常用选项:

-f:强制移动

-i:覆盖前询问

-n:不覆盖已存在文件

如果指定了-i、-f、-n 中的多个,仅最后一个生效。

-v:详细显示进行的步骤


8、rm命令

用法:rm [选项]... 文件...

常用选项:

-f:强制删除。忽略不存在的文件,不提示确认

-i:在删除前需要确认

-r -R:递归删除目录及其内容

-v:详细显示进行的步骤


9、tree命令

-d:只显示目录

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

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

本文出自 “linux运维学习之路” 博客,请务必保留此出处http://fengliang.blog.51cto.com/3453935/1831773