LInux基础之(三)文件的操作

本文介绍了Linux系统中通过终端进行文件操作的基本命令,包括使用`cp`命令复制文件及其属性,`mv`命令移动文件并处理重名情况,以及`rm`命令删除文件时的选项说明,如强制删除、交互式删除和递归删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件的操作

在Windows等平台中,经常会用到的文件操作有复制、剪切、删除等,在桌面环境中进行这些操作,通常需要使用鼠标右键的快捷功能。而在终端中,显然是无法使用鼠标完成这些任务的,在终端中同样是使用命令来实现文件的这些操作,而且效率会更高。

1、复制文件:cp命令

cp(copy)命令通常是用来进行文件复制的,除了文件复制以外,也可以进行快捷方式的创建等操作。

#复制tedu_1.txt文件为tedu_cp.txt
#cp命令最简单的使用方法至少需要一个源文件和目标文件
#tedu_1.txt为源文件,也就是需要复制的文件
#tedu_cp.txt为目标文件,也就是复制之后产生的新文件
os@DESKTOP-2DHQBVS:~$ cp tedu_1.txt tedu_cp.txt
#使用ls命令进行查看,并使用grep命令进行筛选,可以看到该文件复制成功
os@DESKTOP-2DHQBVS:~$ ls -l | grep tedu_cp
-rw-rw-rw- 1 os os  0 Sep 27 15:33 tedu_cp.txt

上述示例中实现了文件的复制操作,需要注意的是,上述示例中cp命令只是复制了文件的内容,并没有复制文件的属性,而文件的属性,尤其是权限相关的属性往往关系到该文件复制之后是否仍然可用。
上述示例中复制之后的文件修改时间属性和原文件的修改时间并不相同,cp命令只是重新创建了一个文件,所以目标文件的修改时间就是cp命令执行之后的时间。

cp命令提供了-p选项来完成属性的复制。

#使用ls -l命令进行文件属性的查看,可以看出源文件和目标文件的修改时间并不相同
os@DESKTOP-2DHQBVS:~$ ls -l
total 0
-rw-rw-rw- 1 os os  0 Sep 26 15:09 tedu_1.txt
-rw-rw-rw- 1 os os  0 Sep 27 15:33 tedu_cp.txt
#使用-p选项进行文件复制
os@DESKTOP-2DHQBVS:~$ cp -p tedu_1.txt tedu_4.txt
#使用ls命令进行查看,修改时间源文件和目标文件是相同的,可见文件属性已经复制成功
os@DESKTOP-2DHQBVS:~$ ls -l
total 0
-rw-rw-rw- 1 os os  0 Sep 26 15:09 tedu_1.txt
-rw-rw-rw- 1 os os  0 Sep 26 15:09 tedu_4.txt
-rw-rw-rw- 1 os os  0 Sep 27 15:33 tedu_cp.txt

除了复制文件外,cp命令还可以为源文件创建快捷方式,使用的是-s选项。

2、移动文件:mv命令

移动操作类似于Windows平台的“剪切、粘贴”操作,可以将文件从一个地方移动到另一个地方,Linux平台的mv指令除最基础的移动功能外,还提供了一些其他的命令选项,常用选项如下所示。

#新建测试文件
os@tedu:~$ touch tedu_mv.txt
#当前目录中有一个名为tedu_mv.txt的文件
os@tedu:~$ ls | grep mv
 tedu_mv.txt 
#移动tedu_mv.txt文件到tedu文件夹下
os@tedu:~$ mv tedu_mv.txt tedu
#可以看到文件已经移动到了tedu文件夹下
os@tedu:~$ ls tedu | grep mv
tedu_mv.txt

默认情况下,当目标路径中已经存在同名文件时,mv命令会直接覆盖,很明显,这会产生一些误操作,为了防止这种情况出现,mv命令提供了-i选项来进行覆盖提醒。

#使用mv命令-i选项移动文件时会提示是否覆盖
#再次新建同名文件
os@tedu:~$ touch tedu_mv.txt
#再次移动该文件到tedu文件夹下,注意添加-i选项
#-i选项的目的是如果有同名文件,则询问用户是否覆盖
os@tedu:~$ mv -i tedu_mv.txt tedu
#输入n,则不覆盖并放弃移动
#输入y,则继续执行移动操作并覆盖目标文件
mv:是否覆盖'tedu/tedu_mv.txt'? n

上述示例中实现了覆盖时的提醒,当移动过程中重名文件较多时,每次都要提示会比较繁琐,此时可以直接使用-b选项对目标文件进行备份,之后在备份目标文件后再进行移动。

#再次尝试移动tedu_mv.txt文件到tedu文件夹下,注意添加-b选项
#-b选项的作用是目标文件与源文件同名时,并不询问是否覆盖,而是在备份目标文件后直接移动
os@tedu:~$ mv -b tedu_mv.txt tedu
#可以看到目标文件的文件名被更改为tedu_mv.txt~,源文件移动成功
os@tedu:~$ ls tedu | grep mv
tedu_mv.txt  
tedu_mv.txt~

3、删除文件:rm命令

#删除文件
os@tedu:~$ rm -rf  tedu_mv.txt
os@tedu:~$ 
#使用ls命令进行查看,可以看到该文件删除成功
os@tedu:~$ ls
os@tedu:~$ 

选项说明:
-f    -force      忽略不存在的文件,强制删除,无任何提示
-i    --interactive    进行交互式地删除
-r | -R  --recursive    递归式地删除列出的目录下的所有目录和文件
-v    --verbose    详细显示进行的步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值