Linux命令大全之文件管理

mv命令 -- 移动或改名文件

mv命令来自英文单词move的缩写,中文译为"移动",其功能与英文含义相同,能够对文件进行剪切和重命名操作。这是一个被高频使用的文件管理命令,我们需要留意它与复制命令的区别。cp命令是用于文件的复制操作,文件个数是增加的,而mv则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增‍加。

在同一个目录内对文件进行剪切的操作,实际上应理解成重命名操作,例如下面的第一个示例所‍示。

语法格式:mv 参数 源文件名 目标文件名 常用参数:

参数 说明
-b 覆盖前为目标文件创建备份
-v 显示执行过程详细信息
-f 强制覆盖目标文件而不询问
-Z 设置文件安全上下文
-i 覆盖目标文件前询问用户是否确认
--help 显示帮助信息
-n 不要覆盖已有文件
--version 显示版本信息
-u 当源文件比目标文件更新时,才执行覆盖操作

参考示例

对指定文件进行剪切后粘贴(重命名)操作:

[root@linuxcool ~]# mv File1.cfg File2.cfg

将指定文件移动到/etc目录中,保留文件原始名称:

[root@linuxcool ~]# mv File2.cfg /etc

将指定目录移动到/etc目录中,并定义新的目录名称:

[root@linuxcool ~]# mv Dir1 /etc/Dir2

将/home目录中所有的文件都移动到当前工作目录中,若遇到文件已存在则直接覆盖:

[root@linuxcool ~]# mv -f /home/* .

ls命令 -- 显示目录中文件及其属性信息

ls命令来自英文单词list的缩写,中文译为"列出",其功能是显示目录中的文件及其属性信息,是最常使用的Linux命令之‍一。

默认不添加任何参数的情况下,ls命令会列出当前工作目录中的文件信息,常与cd或pwd命令搭配使用,十分方便。带上参数后,我们可以做更多的事情。作为最基础、最频繁使用的命令,有必要仔细了解其常用功‍能。

语法格式:ls 参数 文件名

常用参数

参数 说明
-a 显示所有文件及目录
-r 依据首字母将文件以相反次序显示
-A 不显示当前目录和父目录
-R 递归显示所有子文件
-d 显示目录自身的属性信息
-S 依据内容大小将文件排序显示
-i 显示文件的inode属性信息
-t 依据最后修改时间将文件排序显示
-l 显示文件的详细属性信息
-X 依据扩展名将文件排序显示
-m 以逗号为间隔符,水平显示文件信息
-color 以彩色显示信息

参考示例

显示当前目录中的文件名(默认不含隐藏文件):

[root@linuxcool ~]# ls

anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates

Desktop Downloads Music Public Videos

显示当前目录中的文件名(含隐藏文件):

[root@linuxcool ~]# ls -a

. .bashrc Documents Music Videos

.. .cache Downloads Pictures .viminfo

以详细信息模式输出文件名及其属性信息:

[root@linuxcool ~]# ls -l

total 8 -rw-------. 1 root root 1430 Dec 14 08:05 anaconda-ks.cfg

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Desktop

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Documents

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Downloads

-rw-r--r--. 1 root root 1585 Dec 14 08:34 initial-setup-ks.cfg

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Music

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Pictures

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Public

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Templates

drwxr-xr-x. 2 root root 6 Dec 14 08:37 Videos

显示指定目录中的文件列表:

[root@linuxcool ~]# ls /etc adjtime hosts pulse

aliases hosts.allow qemu-ga

alsa hosts.deny qemu-kvm

alternatives hp radvd.conf

anacrontab idmapd.conf ras

asound.conf init.d rc0.d

at.deny inittab rc1.d ..................省略部分输出信息..................

显示当前目录中的文件名及inode属性信息:

[root@linuxcool ~]# ls -i

35290115 anaconda-ks.cfg 35290137 initial-setup-ks.cfg 35290164 Templates

1137391 Desktop 17840039 Music 51609597 Videos

1137392 Documents 35290165 Pictures

17840038 Downloads 51609596 Public

结合通配符一起使用,显示指定目录中所有以sd开头的文件列表:

[root@linuxcool ~]# ls /dev/sd*

/dev/sda /dev/sda1 /dev/sda2

依据文件内容大小进行排序,显示指定目录中文件名及其属性详情信息:

[root@linuxcool ~]# ls -Sl /etc

total 1348

-rw-r--r--. 1 root root 692241 Sep 10 2023 services

-rw-r--r--. 1 root root 66482 Dec 14 08:34 ld.so.cache

-rw-r--r--. 1 root root 60352 May 11 2023 mime.types

-rw-r--r--. 1 root dnsmasq 26843 Aug 12 2023 dnsmasq.conf

-rw-r--r--. 1 root root 25696 Dec 12 2023 brltty.conf

-rw-r--r--. 1 root root 9450 Aug 12 2023 nanorc

-rw-r--r--. 1 root root 7265 Dec 14 08:03 kdump.conf

-rw-------. 1 tss tss 7046 Aug 13 2023 tcsd.conf

..................省略部分输出信息..................

cp命令 -- 复制文件或目录

cp命令来自英文单词copy的缩写,中文译为"复制",其功能是复制文件或目录。cp命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r参数用于递归操作,复制目录时若忘记添加则会直接报错;-f参数则用于当目标文件已存在时会直接覆盖而不再询问。这两个参数尤为常用。

语法格式:cp 参数 源文件名 目标文件名

常用参数

参数 说明
-a 功能等价于pdr参数组合
-l 对源文件建立硬链接,而非复制文件
-b 覆盖目标文件前先进行备份
-p 保留源文件或目录的所有属性信息
-d 复制链接文件时,将目标文件也建立为链接文件
-r 递归复制所有子文件
-f 若目标文件已存在,则会直接覆盖
-s 对源文件建立软链接,而非复制文件
-i 若目标文件已存在,则会询问是否覆盖
-v 显示执行过程详细信息

参考示例

复制指定的源文件,并定义新文件的名称:

[root@linuxcool ~]# cp File1.cfg File2.cfg

复制指定的源目录,并定义新目录的名称:

[root@linuxcool ~]# cp -r Dir1 Dir2

复制文件时,保留其原始权限及用户归属信息:

[root@linuxcool ~]# cp -a File1.cfg File2.cfg

将指定文件复制到/etc目录中,并覆盖已有文件,不进行询问:

[root@linuxcool ~]# cp -f File1.cfg /etc

将多个文件一同复制到/etc目录中,如已有目标文件名称则默认询问是否覆盖:

[root@linuxcool ~]# cp File1.cfg File2.cfg /etc

cp: overwrite '/etc/File1.cfg'? y

mkdir命令 -- 创建目录文件

mkdir命令来自英文词组make directories的缩写,其功能是创建目录文件。该命令的使用简单,但需要注意,若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。若目录不存在,但具有嵌套的依赖关系时,例如/Dir1/Dir2/Dir3/Dir4/Dir5,要想一次性创建则需要加入-p参数,进行递归操‍作。

语法格式 : mkdir 参数 目录名

常用参数

参数 说明
-m 创建目录的同时设置权限
-v 显示执行过程详细信息
-p 递归创建多级目录
-z 设置目录安全上下文

参考示例

建立一个目录文件:

[root@linuxcool ~]# mkdir Dir1

创建一个目录文件并设置700权限,不让除所有主以外的任何人读、写、执行它:

[root@linuxcool ~]# mkdir -m 700 Dir2

一次性创建多个目录文件:

[root@linuxcool ~]# mkdir Dir3 Dir4 Dir5

在系统根目录中,一次性创建多个有嵌套关系的目录文件:

[root@linuxcool ~]# mkdir -p /Dir1/Dir2/Dir3/Dir4/Dir5

pwd命令 -- 显示当前工作目录的路径

pwd命令来自英文词组print working directory的缩写,其功能是显示当前工作目录的路径,即显示所在位置的绝对路‍径。

在实际工作中,我们经常会在不同目录之间进行切换,为了防止"迷路",可以使用pwd命令快速查看当前所处的工作目录路径,方便开展后续工作。

语法格式:pwd 参数

常用参数

参数 说明
-L 显示逻辑路径
--version 显示版本信息
-P 显示实际物理地址
--help 显示帮助信息

参考示例

查看当前工作目录路径:

[root@linuxcool ~]# pwd /root

tar命令 -- 压缩和解压缩文件

tar命令的功能是压缩和解压缩文件,能够制作出Linux系统中常见的tar、tar.gz、tar.bz2等格式的压缩包文件。对于RHEL 7、CentOS 7版本及以后的系统,解压缩时不添加格式参数(如z或j),系统也能自动进行分析并解压。把要传输的文件先压缩再传输,能够很好地提高工作效率,方便分享。

语法格式:tar 参数 压缩包名 文件或目录名

常用参数

参数 说明
-A 添加文件到已存在的压缩包
-p 保留原来的文件权限与属性
-B 设置区块大小
-P 使用绝对路径
-c 创建新的压缩
-t 显示压缩包的内容
-C 解压缩到指定目录
-u 更新压缩包内的文件
-d 记录文件的差别
-v 显示执行过程详细信息
-f 指定压缩包文件
-w 确认压缩包的完整性
-j 使用bzip2压缩格式
-x 从压缩包内提取文件
-l 设置文件系统边界
-z 使用gzip压缩格式
-m 保护文件不被覆盖
--exclude 排除指定的文件不压缩
-N 只将较新日期的文件保存到压缩包中
--remove-files 操作完成后删除源文件

参考示例

使用gzip压缩格式对指定目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.gz:

[root@linuxcool ~]# tar czvf File.tar.gz /etc

tar: Removing leading `/' from member names

/etc/

/etc/mtab

/etc/fstab

/etc/crypttab

/etc/resolv.conf

/etc/dnf/

..................省略部分输出信息..................

使用bzip2压缩格式对某个目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.bz2:

[root@linuxcool ~]# tar cjvf File.tar.bz2 /etc

tar: Removing leading `/' from member names

/etc/

/etc/mtab

/etc/fstab

/etc/crypttab

/etc/resolv.conf

/etc/dnf/

/etc/dnf/modules.d/

/etc/dnf/modules.d/container-tools.module

..................省略部分输出信息..................

将当前工作目录内所有以.cfg为后缀的文件打包,不进行压缩:

[root@linuxcool ~]# tar cvf File.tar *.cfg

anaconda-ks.cfg

initial-setup-ks.cfg

将当前工作目录内所有以.cfg为后缀的文件打包,不进行压缩,并删除原始文件:

[root@linuxcool ~]# tar cvf File.tar *.cfg --remove-files

anaconda-ks.cfg initial-setup-ks.cfg

解压指定压缩包到当前工作目录:

[root@linuxcool ~]# tar xvf File.tar

anaconda-ks.cfg

initial-setup-ks.cfg

解压指定压缩包到/etc目录:

[root@linuxcool ~]# tar xvf File.tar -C /etc

anaconda-ks.cfg

initial-setup-ks.cfg

查看某个压缩包内文件信息(无须解压):

[root@linuxcool ~]# tar tvf File.tar

-rw------- root/root 1256 2023-05-18 08:42 anaconda-ks.cfg

-rw-r--r-- root/root 1585 2023-05-18 08:43 initial-setup-ks.cfg

cd命令 -- 切换目录

cd命令来自英文词组change directory的缩写,其功能是更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前使用者的家目‍录。

语法格式:cd 参数 目录名

常用参数

参数 说明
-L 切换至符号链接所在的目录
~ 切换至用户家目录
-P 切换至符号链接对应的实际目录
.. 切换至当前位置的上一级目录
-- 切换至上次所在目录

参考示例

切换到指定目录:

[root@linuxcool ~]# cd /Dir

[root@linuxcool Dir]#

切换至当前用户的家目录:

[root@linuxcool Dir]# cd ~

[root@linuxcool ~]#

进入到上一级所在目录:

[root@linuxcool ~]# cd ..

[root@linuxcool /]#

返回到上一次所在目录:

[root@linuxcool /]# cd - /root

[root@linuxcool ~]#

chmod命令 -- 改变文件或目录权限

chmod命令来自英文词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。

设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件,建议加入-R参数进行递归操作,这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。

语法格式:chmod 参数 文件名

常用参数

参数 说明
-c 改变权限成功后再输出成功信息
--no-preserve-root 不特殊对待根目录
-f 改变权限失败后不显示错误信息
--preserve-root 禁止对根目录进行递归操作
-R 递归处理所有子文件
--reference 使用指定参考文件的权限
-v 显示执行过程详细信息
--version 显示版本信息
--help 显示帮助信息

参考示例

设定某个文件的权限为775:

[root@linuxcool ~]# chmod 775 File.cfg

设定某个文件让任何人都可以读取:

[root@linuxcool ~]# chmod a+r File.cfg

设定某个目录及其内部的子文件可被任何人读取:

[root@linuxcool ~]# chmod -R a+r Dir

为某个二进制命令文件新增SUID特殊权限位:

[root@linuxcool ~]# chmod u+s /sbin/reboot

相关推荐
编码浪子5 分钟前
构建一个rust生产应用读书笔记7-确认邮件2
开发语言·后端·rust
昙鱼16 分钟前
springboot创建web项目
java·前端·spring boot·后端·spring·maven
白宇横流学长23 分钟前
基于SpringBoot的停车场管理系统设计与实现【源码+文档+部署讲解】
java·spring boot·后端
kirito学长-Java28 分钟前
springboot/ssm太原学院商铺管理系统Java代码编写web在线购物商城
java·spring boot·后端
程序猿-瑞瑞1 小时前
24 go语言(golang) - gorm框架安装及使用案例详解
开发语言·后端·golang·gorm
组合缺一1 小时前
Solon v3.0.5 发布!(Spring 可以退休了吗?)
java·后端·spring·solon
猿来入此小猿1 小时前
基于SpringBoot在线音乐系统平台功能实现十二
java·spring boot·后端·毕业设计·音乐系统·音乐平台·毕业源码
愤怒的代码1 小时前
Spring Boot对访问密钥加解密——HMAC-SHA256
java·spring boot·后端
栗豆包2 小时前
w118共享汽车管理系统
java·spring boot·后端·spring·tomcat·maven
万亿少女的梦1682 小时前
基于Spring Boot的网络购物商城的设计与实现
java·spring boot·后端