Linux命令之文件管理命令

Linux命令之文件管理命令

前言:此博文仅仅介绍一些常用的Linux文件管理命令以及常用的命令参数!

注意:下面命令参数中的逗号代表或的意思,也就是说这几种参数实现相同的功能,可以相互代替。

1、ls 

作用:ls命令用于显示目录内容,类似于DOS下的dir命令,它的使用权限是所有用户。

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

-a,--all:列出该目录下的所有文件,包括以“.”开始的文件
-d,--directory:当遇到目录时列出目录本身而非目录内的文件
-l:列出每个文件的详细信息(分别是:权限、文件数、组用户、所有者、大小、创建日期)
-R,--recursive:递归显示当前目录下的所有目录以及其子目录
-S:根据文件大小排序
-t:根据文件的修改时间排序

例:显示当前目录下每个文件的详细信息 :ls  -l


注:红框中一共有十个占位符,第一个为"-"表示文件,第一个为"d"表示目录。剩下的9个占位符划分为三组,分别表示所有者权限,同组用户权限,其他用户权限。

附:使用ls命令时会有几种不同的颜色,其中蓝色表示目录,绿色表示可执行文件,红色表示压缩文件,浅蓝色表示链接文件,加粗的黑色表示符号链接,灰色表示其他用法文件。

2、rm 

作用:删除指定的文件

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

-f :--force:强制删除。忽略不存在的文件,不提示确认。温馨提示:此参数慎用
-i :在删除前需要确认
-r,-R--recursive:递归删除目录及其内容
-v,--verbose:详细显示进行的步骤

注:如果指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项

例:删除所有后缀名为.c的文件;删除前逐一询问确认:rm -i *.c


3、cp 

作用:文件或目录的复制

用法:cp [选项] ... 源文件  ... 目标文件

-f:删除已存在的目标文件
-i:覆盖已存在的目标文件之前会给出警告提示
-R:复制目录时,包括此目录下的所有的子目录和文件
-r:复制目录时,包括此目录下的所有的子目录和文件。不同于-R的地方是-r在尝试打开目的文件前会删除已存在的目的文件

例:将当前目录下的a.txt源文件拷贝到test目录下,并修改为b.txt:cp a.txt test/b.txt


4、mv 

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

用法:mv [选项] ...[-T] 源目录

-b :若需覆盖文件,则覆盖前先行备份
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination)已经存在时,就会询问是否覆盖
-u :若目标文件已经存在,且source比较新,才会更新(update)
-t :指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后

mv命令的机制:

mv命令中第二个参数类型有两种(目标文件和目标目录):

1)如果参数类型是目标文件,mv命令实现的功能是文件或目录的重命名,即将原来的文件名更新为目标文件名。

注:此时源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件或目录名。

例:

    ①将hello.java文件从当前目录移动到/home/java/sh下:mv a.txt /home/java/sh

    ②将a.java文件重命名为b.java:mv a.java b.java

2)如果参数类型是目标目录,mv命令实现的功能是文件或目录的转移、覆盖或更新。

注:此时源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

例:移除目录home/java下的所有以.java为扩展名的文件:rm *.java home/java

5、rmdir

作用:删除一个或多个目录

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

-p,--parents:删除指定目录及其上级文件夹
-v,--verbose:输出处理的目录详情

例:删除目录a中目录b中的目录c :rmdir -p a/b/c


6、find

作用:查找文件或者目录,使用权限:所有用户
用法:find pathname [选项] [参数]

命令选项:

-name   按照文件名查找文件
-perm   按照文件权限来查找文件
-prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略
-user   按照文件属主来查找文件
-group  按照文件所属的组来查找文件
-mtime -n +n  按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项
-nogroup查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在
-type  查找某一类型的文件,诸如:
    b - 块设备文件
    d - 目录
    c - 字符设备文件
    p - 管道文件
    l - 符号链接文件
    f - 普通文件

例:按照目录或文件的权限来查找文件:find /opt/soft/test/ -perm 777

7、ln

作用:链接文件和目录

用法:ln [选项] [源文件或目录] [目标文件或目录]

-f:链接时先将与dist同档名的档案删除
-d:允许系统管理者硬链接自己的目录
-i:在删除与dist同档名的档案时先进行询问
-n:在进行软链接时,将dist视为一般的档案
-s:进行软链结(symboliclink)
-v:在链接之前显示其档名
-b:将在链接时会被覆写或删除的档案进行备份

例:给a.java文件创建软链接,链接名为linkSH:ln -s a.java linkSH

例:给b.java文件创建软链接,链接名为linkSH:ln -s b.java linkSH

介绍:软连接与硬连接

【软连接】
        另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

【硬连接】

        硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

【二者的区别】

1、硬链接原文件 / 链接文件公用一个 inode 号,说明他们是同一个文件,而软链接原文件 / 链接文件拥有不同的 inode 号,表明他们是两个不同的文件;
2、在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
3、链接数目是不一样的,软链接的链接数目不会增加;
4、文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的。而这里软链接显示的大小与原文件就不同了, centos-release 大小是 38B ,而 system-release是 14B 。因为 centos-release 共有 3 个字符;
5、软链接没有任何文件系统的限制,任何用户可以创建指向目录的符号链接

8、tree

作用:创建文件列表,将目录所有文件以树状的形式列出来。(颜值高)

用法:tree [选项] ... 文件或目录 ...

-a:显示所有文件和目录
-d:先是目录名称而非内容
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
-i:不以阶梯状列出文件和目录名称
-p:列出权限标示
-s:列出文件和目录大小
-t:用文件和目录的更改时间排序
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码

例:只显示当前目录下的所有目录结构:tree -d


9、chmod

作用:修改文件或目录的访问权限,用户可以用它控制文件或目录的访问权限
用法:字符设定法和数字设定法

1)字符设定法

chmod [ugoa] [+ | - | =] [rwx] 文件名

注:

u:user(文件或目录所有者)

g:group(同组用户)

o:other(其他用户)

a:all(所有用户)系统默认值

+:表示添加某个权限

-:表示取消某个权限

=:表示赋予某个权限

r:read读  w:write写  x:execute执行

例:赋予其他用户对a.txt文件的读写权限:chmod o + rw a.txt

2)数字设定法

chmod [mode] 文件名

数字属性的格式应为3个0到7的八进制数,其顺序是(u)(g)(o) 文件名,支持通配符。

例:设置自己对sunhui.txt文件的权限为可读、写和执行,但对其他所有用户只读:chmod 744 sunhui.txt


10、chown

作用:更改与文件关联的所有者组
用法:
chown [选项] ... 所有者 [:[组]] 文件 ...
chown [选项] ... : 组文件 ...

chown [选项] ...--reference = 参考文件 ...

-c:显示更改的部分的信息
-f:忽略错误信息
-h:修复符号链接
-R:处理指定目录以及其子目录下的所有文件
-v:显示详细的处理信息
-deference:作用于符号链接的指向,而不是链接文件本身

例:将当前目录下的test文件的拥有者和群组改为root/demo:chown -R -v root:demo test

小结:此博文是本人翻阅书籍等资源精心整理,如有问题请指出!

猜你喜欢

转载自blog.csdn.net/qq_37896194/article/details/80285383