百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux文件操作命令,常用命令有哪些?

ahcoder 2025-02-28 14:38 23 浏览

1.1 文件创建命令(touch)

该命令的作用主要为创建文件,就类似于Windows系统中的新建功能,比如新建一个*.txt*.md文件,该命令可以在当前目录下创建文件,也可以在指定目录下创建文件。

示例1:在当前目录下创建文件

touch math.txt

执行结果如下:

[root@VM-0-6-centos math]# touch math.txt
[root@VM-0-6-centos math]# ls
math.txt

示例2:在指定目录下创建文件

touch english/english.md

执行结果如下:

[root@VM-0-6-centos subject]# ls english/
english.md

在上面的示例中,我们是一次只创建了一个文件,我们也可以一次性创建多个文件,只需要文件名之间用空格隔开即可。

示例3:一次创建多个文件

touch xiaohong.txt xiaomin.txt xiaogang.txt

执行结果如下:

[root@VM-0-6-centos name]# touch xiaohong.txt xiaomin.txt xiaogang.txt
[root@VM-0-6-centos name]# ls
xiaogang.txt  xiaohong.txt  xiaomin.txt

1.2 移动或重命名(mv)

mv命令的作用有两个,一个是移动文件或文件夹,就类似于Windows系统的剪切功能,将一个文件从一个目录或文件移动到另一个目录,还有一个作用是对文件或目录进行重命名

示例1:移动文件

mv xiaomin.txt name1

执行结果如下:

[root@VM-0-6-centos name]# mv xiaomin.txt name1
[root@VM-0-6-centos name]# ls name1
xiaomin.txt
[root@VM-0-6-centos name]#

从上面的运行结果我们得知,我们将name目录下的xiaomin.txt文件移动至name1的目录下。

示例2:重命名文件

mv xiaomin.txt xiaominpro.txt

执行结果如下:

[root@VM-0-6-centos name1]# mv xiaomin.txt xiaominpro.txt
[root@VM-0-6-centos name1]# ls
xiaominpro.txt

在使用mv命令操作文件的时候,如果你第二个参数是一个目录的话,那么此时mv的功能就是移动,如果第二个位置是一个文件的话,那么此时mv的功能就是重命名mv不仅可以移动或重命名文件,也可以重命名或移动文件夹

示例3:移动文件夹

 mv name1 name2

执行结果如下:

[root@VM-0-6-centos name]# ls
name1  name2  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]# mv name1 name2
[root@VM-0-6-centos name]# ls name2
name1

示例4:重命名文件夹

 mv name2 name3

执行结果如下:

[root@VM-0-6-centos name]# ls
name2  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]# mv name2 name3
[root@VM-0-6-centos name]# ls
name3  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]#

在使用mv命令操作目录的时候,第二个参数,如果目录是存在的,那么此时mv的作用就是移动如果第二个参数的目录是不存在的,那么mv的作用就是重命名

1.3 查看文件内容(cat)

该命令的作用主要是查看文件的内容,比如有一个文本文件,我们想查看它里面写了什么内容,此时就可以使用cat命令。

示例1:查看文件内容

cat flower.txt

执行结果如下:

[root@VM-0-6-centos name]# cat flower.txt
阳春三月,风和日暖;信步城外,看阡陌之上杨柳依依,野花绚烂,身心不由得轻爽而浪漫。
漫步陌上,只因陌上花开;花是自然的那种,朴素而恬淡,不落尘俗。“三月风情陌上花”,是花在其中生命得以璀璨,人在其中心情得以畅然的一种意境。这意境,枝繁叶茂,从古代长到现代,不枯不衰;又如水,岁岁年年,流淌在阡陌之上,不知迷醉过古今几个王公贵族、粉黛佳丽、骚人墨客、凡男俗女,三月陌上花,让人爱让人痴,恍惚人的骨子里头都沉淀了花的影子,花的风韵。

1.4 文件复制命令(cp)

该命令的作用为复制文件,cp是英文copy的缩写。

示例1:复制文件到指定目录

cp flower.txt temp

执行结果如下:

[root@VM-0-6-centos name]# ls
flower.txt  name3  temp  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]# cp flower.txt temp
[root@VM-0-6-centos name]# ls temp/
flower.txt

除了可以把文件复制到指定的目录,我们也可以将文件复制给另一个文件,但是会覆盖目标文件的内容,如果目标文件不存在,则会为其创建

示例2:复制文件内容给指定文件呢

cp flower.txt flower1.txt

执行结果如下:

[root@VM-0-6-centos name]# ls
flower.txt  name3  temp  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]# cp flower.txt flower1.txt
[root@VM-0-6-centos name]# ls
flower1.txt  flower.txt  name3  temp  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]#

1.5 压缩和解压命令(tar)

在Windows系统中我们一般都是通过解压软件来进行对文件或者文件的压缩和解压,在Linux系统中一般是通过tar解压缩命令来实现的,tar命令的参数如下:

在Windows系统中,一般常见的压缩包文件格式是*.zip*.rar等,但是在Linux系统中压缩包的文件格式一般为*.tar.gz。在使用tar命令进行解压缩的时候,我们一般是将参数组合起来使用的。

示例1:将文件解压到当前目录

tar -zxvf nginx-1.18.0.tar.gz

执行结果如下:

[root@VM-0-6-centos name]# ls
flower1.txt  flower.txt  name3  nginx-1.18.0.tar.gz  temp  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]# tar -zxvf nginx-1.18.0.tar.gz
nginx-1.18.0/
nginx-1.18.0/auto/
nginx-1.18.0/conf/
....
[root@VM-0-6-centos name]# ls
flower1.txt  flower.txt  name3  nginx-1.18.0  nginx-1.18.0.tar.gz  temp  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]#

当我们解压完成后,会在当前目录下产生一个解压后的文件夹。

示例2:将文件解压到指定目录

tar -zxf nginx-1.18.0.tar.gz -C temp

执行结果如下:

[root@VM-0-6-centos name]# ls
flower1.txt  flower.txt  name3  nginx-1.18.0.tar.gz  temp  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]# tar -zxf nginx-1.18.0.tar.gz -C temp
[root@VM-0-6-centos name]# ls temp
flower.txt  nginx-1.18.0
[root@VM-0-6-centos name]#

这里的-C表示 解压到指定的目录,我们将nginx-1.18.0.tar.gz解压到temp的目录下。

示例3:将文件夹压缩至当前目录下

tar -czvf name.tar.gz name

执行结果如下:

[root@VM-0-6-centos filedir]# tar -czvf name.tar.gz name
name/
name/nginx-1.18.0.tar.gz
name/xiaohong.txt
name/tmp/
name/tmp/nginx-1.21.1/
name/tmp/nginx-1.21.1/nginx.exe
name/tmp/nginx-1.21.1/contrib/
...
[root@VM-0-6-centos filedir]# ls
a  filetemp  name  name.tar.gz  subject
[root@VM-0-6-centos filedir]# 

我们来解释一下命令,name.tar.gz你指定的压缩包名称和后缀名name表示你要压缩那个目录。有的时候,我们只是想把文件快速打包一下,不想压缩,此时我们可以将-z选项去掉缺点就是打包后的文件比较大如果你想要压缩,那么就需要将-z加上,缺点就是压缩的速度慢

示例4:对文件进行压缩

有的时候我们不想压缩整个目录,只想压缩单个或多个文件,这个时候我们只需要将上面示例中的文件夹目录换成文件即可,如果是多个文件,只需用空格分割开就行。

tar -czvf txt.tar.gz 1.txt 2.txt 3.txt

执行结果如下:

[root@VM-0-6-centos filedir]# ls
1.txt  2.txt  3.txt  a  filetemp  name  name.tar.gz  subject
[root@VM-0-6-centos filedir]# tar -czvf txt.tar.gz 1.txt 2.txt 3.txt
1.txt
2.txt
3.txt
[root@VM-0-6-centos filedir]# ls
1.txt  2.txt  3.txt  a  filetemp  name  name.tar.gz  subject  txt.tar.gz
[root@VM-0-6-centos filedir]#

1.6 解压zip格式文件(unzip)

在Linux系统中,一般情况压缩的文件后缀都是*.tar.gz,但是它也不是唯一,像Windows系统中的*.zip文件,在Linux系统中也是可以解压的,使用的命令是unzip

示例1:解压zip文件至当前目录

unzip nginx-1.21.1.zip

执行结果如下:

[root@VM-0-6-centos name]# unzip nginx-1.21.1.zip 
Archive:  nginx-1.21.1.zip
   creating: nginx-1.21.1/
   creating: nginx-1.21.1/temp/
  inflating: nginx-1.21.1/nginx.exe
   creating: nginx-1.21.1/html/
....
[root@VM-0-6-centos name]# ls
flower1.txt  flower.txt  name3  nginx-1.18.0.tar.gz  nginx-1.21.1  nginx-1.21.1.zip  temp  xiaogang.txt  xiaohong.txt

我们通过unzip命令,在命令后面直接输入要解压的文件名,即可解压。但是有些时候我们不想解压到当前目录,我们怎么办呢,此时我们可以将-d参数来指定要解压的位置

示例2:解压zip文件至指定目录

unzip nginx-1.21.1.zip -d tmp

执行结果如下:

[root@VM-0-6-centos name]# ls
nginx-1.18.0.tar.gz  nginx-1.21.1.zip  tmp  xiaogang.txt  xiaohong.txt
[root@VM-0-6-centos name]# unzip nginx-1.21.1.zip -d tmp
Archive:  nginx-1.21.1.zip
   creating: tmp/nginx-1.21.1/
   creating: tmp/nginx-1.21.1/temp/
  inflating: tmp/nginx-1.21.1/nginx.exe
   creating: tmp/nginx-1.21.1/html/
  inflating: tmp/nginx-1.21.1/html/index.html
  inflating: tmp/nginx-1.21.1/html/50x.html
   creating: tmp/nginx-1.21.1/docs/
[root@VM-0-6-centos name]# ls tmp
nginx-1.21.1

通过-d选项将文件解压在tmp目录下。

示例3:压缩zip格式的文件

zip -r name.zip name

执行结果如下:

[root@VM-0-6-centos filedir]# zip -r name.zip name
  adding: name/ (stored 0%)
  adding: name/nginx-1.18.0.tar.gz (deflated 0%)
  adding: name/xiaohong.txt (stored 0%)
  adding: name/tmp/ (stored 0%)
  adding: name/tmp/nginx-1.21.1/ (stored 0%)
  adding: name/tmp/nginx-1.21.1/nginx.exe (deflated 59%)
  adding: name/tmp/nginx-1.21.1/contrib/ (stored 0%)
...
[root@VM-0-6-centos filedir]# ls
1.txt  2.txt  3.txt  a  filetemp  name  name.tar.gz  name.zip  subject  txt.tar.gz

值得注意的是-r的选项最好是放在前面,如果放在后面,可能会有问题。

1.7 查找文件命令(find)

在Windows系统中,我们查找文件通常是在文件管理器中的搜索框中进行搜索,在Linux系统中我们一般是使用find命令来查找我们所需的文件。

查找文件名以test开头的文件

find . -name 'test*'

执行结果如下:

[root@VM-0-6-centos test]# ls
test1.txt  test2.txt  test3.txt  te.txt
[root@VM-0-6-centos test]# find . -name 'test*'
./test1.txt
./test2.txt
./test3.txt
[root@VM-0-6-centos test]#

在命令中,.表示当前目录,即要查找的位置,-name 选项表示:我们通过文件的名称查找,后面的test* 表示我们要查找的文件名称,支持通配符,在当前的目录下有四个文件中,只有三个文件是以test开头的,通过命令我们可以查出符合条件的文件路径。

查找文件名以txt结尾的文件

find . -name '*.txt'

执行结果如下:

[root@VM-0-6-centos test]# ls
test1.txt  test2.txt  test3.txt  test.md  te.txt
[root@VM-0-6-centos test]# find . -name '*.txt'
./test1.txt
./test2.txt
./test3.txt
./te.txt
[root@VM-0-6-centos test]#

查找文件大小大于3K的文件有的时候,我们发现磁盘的空间不够了,这个时候我们想看看有哪些文件比较大,比如看看有哪些文件是大约1G的,这个时候我们也可以使用find命令把他们找到,把没有用的大文件删掉。为了演示我们这里暂且就查找3K的文件。

find . -type f -size +3k

执行结果如下:

[root@VM-0-6-centos nginx-1.21.1]# find . -type f -size +3k
./conf/koi-utf
./conf/nginx.conf
./conf/koi-win
[root@VM-0-6-centos nginx-1.21.1]#

这里我们解释一下命令中参数的含义,find 表示使用查找命令,. 表示从当前目录开始查找,-type表示根据文件的类型来查,f表示只查文件,不查目录,-size表示文件大小,+号表示大于的意思,也可以省略不写,如果是-则表示小于,最后一个参数为查询的条件。

1.8 文件内容查找命令(grep)

我们在Windows的系统中,比如在word打开一个文档,当我们想去查看文档中,有没有我们关注的内容时,这个时候我们一般会使用Ctrl+F快捷键进行搜索,在Linux系统中我们可以使用grep命令。

示例1:查询文件内容中有linlang的行

grep linlang linlang.txt

执行结果如下:

[root@VM-0-6-centos ~]# cat linlang.txt
lina
hallo
linlangya
make money
linlang
[root@VM-0-6-centos ~]# grep linlang linlang.txt
linlangya
linlang
[root@VM-0-6-centos ~]#

从上面的结果中,我们发现通过grep会查找出文档中满足条件的行。但是在实际的使用中,grep命令不会单独使用,一般都是与管道结合使用,管道在后面章节单独讲。

1.9 查找可执行文件路径(which)

这个命令的作用主要是查找可执行文件,所在的文件路径,比如我们在Linux中使用的命令,其实也是可执行文件,比如我们此时想看ls、cd这些命令所在的路径,此时就可以通过which来查找,该命令在实际的使用中,一般在shell脚本使用的比较多

示例1:查看ls命令的位置

which ls

执行结果如下:

[root@VM-0-6-centos ~]# which ls
alias ls='ls --color=auto'
        /bin/ls
[root@VM-0-6-centos ~]#

1.10 创建连接接命令(ln)

什么叫创建软链接命令呢,简单地说就是类似于Windows系统的快捷方式。示例1:为文件创建软连接

ln -s linlang.txt linlang_bak.txt

执行结果如下:

[root@iZ8vb15btme7rdyvwu43dyZ study]# ls
linlang1  linlang2  linlang3  linlang.txt  plus
[root@iZ8vb15btme7rdyvwu43dyZ study]# ln -s linlang.txt linlang_bak.txt
[root@iZ8vb15btme7rdyvwu43dyZ study]# ll *.txt
lrwxrwxrwx 1 root root 11 8月  15 11:31 linlang_bak.txt -> linlang.txt
-rw-rwxrwx 1 root root  0 8月  14 16:41 linlang.txt
[root@iZ8vb15btme7rdyvwu43dyZ study]# 

命令中有有一个-s的参数,表示创建的是一个软连接,后面接着两个参数,第一个参数表示你要为那个文件创建快捷方式,第二个参数表示你创建的快捷方式叫什么。

结尾

本期的内容就到这里了,如有不足之处还请大家多多指正,欢迎大家留言、关注、转发、收藏,大家也可以关注我们的公众号「郑大钱呀」,一起学习交流,谢谢。

相关推荐

ARM64内核内存布局图(ARM64内核内存布局图解)

ARM64架构处理器采用48位物理寻址机制,最大可以寻找到256TB的物理地址空间。对于目前的应用来说已经足够了,不需要扩展到64位的物理地址寻址。虚拟地址也同样最大支持48位支持,所以在处理器的架构...

ARM64 linux 调试串口通信(ARM64 linux 调试串口通信实验报告)

ARM64linux调试串口通信随着国产机普及很多工作也转移到了新平台上,以前调试设备用的笔记本电脑也换成新国产ARM64架构的了。本文以绿联CM204USB-A转RJ45Console调试线...

Gentoo Linux 终止对 Itanium IA-64 体系的支持

GentooLinux是最后几个继续维护Itanium(IA-64)架构构建的Linux发行版之一,但现在这些已停产的英特尔处理器正在逐步淘汰。由于Linux6.7内核放弃了对Itan...

如何检查 Linux 系统是 32 位还是 64 位?这9个命令查的又快又准!

在Linux系统中,位数(bit)通常指的是CPU架构的位宽,即CPU一次能够处理的数据量。32位系统和64位系统在内存寻址能力、计算性能和软件支持上存在显著差异:「32位系统」:...

调出好画面!带你玩转飞凌嵌入式AM62x开发板的显示接口

来源:飞凌嵌入式官网“显示”是嵌入式开发板最为重要的功能之一,能够支持更多种类、更高规格的显示接口,意味着它能够应对的使用场景也更加广泛。每一款嵌入式开发板在出厂前都会做屏幕调试,但在客户的实际项目开...

带你玩转AM62x开发板的显示接口——LVDS的显示和修改方式

此前小编已为大家介绍过OK6254-C开发板的RGB显示和修改方式,今天将继续为大家介绍OK6254-C开发板的LVDS显示和修改方式。话不多说,我们进入正题。1、LVDS接口规格飞凌嵌入式OK62...

AM335x继任者?AM6254性能解析(am2361p)

飞凌嵌入式FET6254-C核心板基于TISitaraTMAM62x系列工业级处理器设计开发,采用ARMCortex-A53架构,主频最高可达1.4GHz;并集成了丰富的接口,可广泛应用于的工...

如何在 Linux 发行版中安装微信和 QQ?

很多人因为工作沟通的原因需要用到微信和QQ,那么如何在Linux发行版中安装微信和QQ呢?以下是一些尝试的解决方法。QQ上一个版本的QQLinux版还是在2009年,而在现在,基于N...

MySQL:物理备份工具XBK(mysql 备份方案)

XBK的优缺点:XBK(PerconaXtraBackup)优点:1.免费2.热备:备份期间不阻塞innodb和XtraDB表,但会阻塞Myisam表3.物理备份:备份恢复快XBK缺点:1.不支持远...

AMD锐龙9 9950X CPU AIDA64跑分曝光:比7950X最高快45%

IT之家6月26日消息,Anandtech论坛网友igor_kavinski本周一发布帖子,分享了AMD旗舰锐龙99950X处理器的AIDA64基准测试跑分,与当前基于Z...

qemu linux内核(5.10.209)开发环境搭建

版本信息宿主机:ubuntu20.04.6LTS(FocalFossa)虚拟机:ubuntu20.04.6LTS(FocalFossa)安装宿主机的步骤省略,和一般的在vmware中安...

iPhone 7成刷机神器,成功运行乌班图、Linux、安卓

在智能机刚开始流行的时候,很多手机发烧友都喜欢刷机,当时民间大神们制作了特别多优化的ROM。后来随着手机硬件的逐步提升,以及厂商们对系统的大力优化,让大家对于刷机的兴趣也越来越少。不知道大家还记得这部...

12 款最佳免费开源 Linux 渲染器 | 火狐浏览器 130.0 版本更新

12款最佳免费开源Linux渲染器Linux的一大优势在于其拥有丰富的开源软件,可以满足艺术家、摄影师、动画师和设计师的需求。凭借价格低廉的硬件、免费的软件以及少量的才能和灵感,任何人都可以创...

Linux中xargs 命令详解与实用场景

xargs是Linux系统中常用的命令行工具之一,它能够从标准输入构造参数列表并传递给其他命令使用,是处理批量数据操作时的重要利器。一、xargs的基本语法xargs[OPTION]...[C...

Linux 磁盘扩容(非LVM)方式(linux扩容lvm磁盘容量)

今天接到一个客户的需求,CentOS的/分区容量太小了,OA系统所有的数据都在这下面,由于当时前同事给客户安装系统时采用了标准分区,而不是LVM逻辑卷,所以不支持在线扩容。df-hT查看磁盘使...