Linux基础04-Linux中目录和文件都能操作的命令

前面两节我们分别学习了目录操作命令和文件操作命令,那么有没有一些既可以操作目录,又可以操作文件的命令呢?
这样我们就不需要记住两套命令了。
其实还真有,今天这一章就带大家学习Linux中目录和文件都能操作的命令

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。
这是大佬写的, 7701页的BAT大佬写的刷题笔记,让我offer拿到手软

4.1 rm命令

  • 命令名称:rm
  • 英文原意:remove files or directories
  • 所在路径:/bin/rm
  • 执行权限:所有用户
  • 功能描述:删除文件或目录

1、命令格式

    [root@node01 ~]# rm [选项] 文件或目录
    选项:
        -f:    强制删除(force)
        -i:    交互删除,在删除之前会询问用户
        -r:    递归删除,可以删除目录(recursive)

2、常见用法

例子1:基本用法

rm命令如果任何选项都不加,则默认执行的是“rm -i文件名”。
也就是在删除一个文件之前会先询问是否删除。
例如:

[root@node01 ~]# touch cxykk.com
[root@node01 ~]# ll
total 40
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
-rw-r--r--  1 root root     0 Apr 29 22:47 cxykk.com
...省略
[root@node01 ~]# rm cxykk.com
rm: remove regular empty file ‘cxykk.com’? y
[root@node01 ~]# 

例子2:删除目录

如果需要删除目录,则需要使用“-r”选项。例如:

#递归建立测试目录
[root@node01 ~]#  mkdir -p /test/cxykk.com/movie/
#默认不加“-r”选项删除
[root@node01 test]# rm /test/
#无法删除
rm: cannot remove ‘/test/’: Is a directory
[root@node01 test]# rm -r /test/
rm: descend into directory ‘/test/’? y
rm: descend into directory ‘/test/cxykk.com’? y
rm: remove directory ‘/test/cxykk.com/movie’? y
rm: remove directory ‘/test/cxykk.com’? y
rm: remove directory ‘/test/’? y
[root@node01 test]# 

大家会发现,如果每级目录和每个文件都需要确认,那么在实际使用中简直是灾难!
那有没有命令可以不用确认直接删除呢?

那当然有了,不然linux运维人员不是苦逼死了

例子3:强制删除

如果要删除的目录中有1万个子目录或子文件,那么普通的rm删除最少需要确认1万次。
所以,在真正删除文件的时候,我们会选择强制删除。例如:

[root@node01 test]# mkdir -p /test/cxykk.com/movie
[root@node01 test]# rm -rf /test/
[root@node01 test]# cd /test
-bash: cd: /test: No such file or directory
[root@node01 test]# 

加入了强制功能之后,删除就会变得很简单,但是需要注意:
1、数据强制删除之后无法恢复,除非依赖第三方的数据恢复工具,如extundelete等。

但要注意,数据恢复很难恢复完整的数据,一般能恢复70%~80%就很难得了。
所以,与其把宝压在数据恢复上,不如养成良好的操作习惯。

2、虽然“-rf”选项是用来删除目录的,但是删除文件也不会报错。

所以,为了使用方便,一般不论是删除文件还是删除目录,都会直接使用“-rf”选项。

4.2 cp命令

在windows中,我们如果想要复制文件,直接Ctrl+C就可以了,非常简单快捷。
但是在Linux这种非图形化界面中,想要复制文件就没有那么方便了。
这时候就要借助我们的“cp”命令了,“cp”可以理解为copy的缩写。
cp的基本信息如下:

  • 命令名称:cp
  • 英文原意:copy files and directories
  • 所在路径:/bin/cp
  • 执行权限:所有用户
  • 功能描述:复制文件和目录

1、命令格式

    [root@node01 ~]# cp [选项] 源文件 目标文件
    选项:
        -a:    相当于-dpr选项的集合,这几个选项我们一一介绍
        -d:    如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
        -i:    询问,如果目标文件已经存在,则会询问是否覆盖
        -l:    把目标文件建立为源文件的硬链接文件,而不是复制源文件
        -s:    把目标文件建立为源文件的软链接文件,而不是复制源文件
        -p:    复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
        -r:    递归复制,用于复制目录

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。
这是大佬写的, 7701页的BAT大佬写的刷题笔记,让我offer拿到手软

2、常见用法

例子1:基本用法

cp命令不仅可以复制文件,还可以复制目录。我们先来看看如何复制文件,例如:

[root@node01 ~]# touch cxykk.com
[root@node01 ~]# ll
total 40
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
-rw-r--r--  1 root root     0 Apr 29 23:03 cxykk.com
...省略
[root@node01 ~]# cp cxykk.com /tmp/
#我的/tmp/因为已经存在了cxykk.com文件,所以询问我是否覆盖
cp: overwrite ‘/tmp/cxykk.com’? y
[root@node01 ~]# 

有的同学说,如果我复制文件的时候,想要给他改个名字,可以改吗?

当然可以

如果需要改名复制,则命令如下:

#复制cxykk.com文件到/tmp/目录下,且重命名为www.cxykk.com
[root@node01 ~]# cp cxykk.com /tmp/www.cxykk.com
[root@node01 ~]# cd /tmp/
[root@node01 tmp]# ll
total 4
-rw-r--r-- 1 nobody root  0 Apr 29 23:03 cxykk.com
lrwxrwxrwx 1 root   root 15 Apr 21 11:18 soft-link-new -> /root/soft-link
lrwxrwxrwx 1 root   root 15 Apr 21 11:11 soft_link_test -> /root/soft_link
-rw-r--r-- 1 root   root 15 Apr 21 10:17 test_hard
drwx------ 2 root   root  6 Apr 29 22:42 vmware-root_6388-994818425
-rw-r--r-- 1 root   root  0 Apr 29 23:09 www.cxykk.com
#可以看到/tmp/目录下已经有我们复制的www.cxykk.com文件了
[root@node01 tmp]# 

接下来我们看看如何复制目录,其实复制目录非常简单,我们只需在复制文件的命令后加上“-r”选项即可,例如:

[root@node01 ~]# mkdir -p cxykk.com
[root@node01 ~]# ll
total 40
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
drwxr-xr-x  2 root root     6 Apr 29 23:18 cxykk.com
省略...
[root@node01 ~]# cp -r /root/cxykk.com/ /tmp/
cp: cannot overwrite non-directory ‘/tmp/cxykk.com’ with directory ‘/root/cxykk.com/’
#因为我已经存在一个相同目录,所以先删除
[root@node01 ~]# rm -r /tmp/cxykk.com 
rm: remove regular empty file ‘/tmp/cxykk.com’? y
[root@node01 ~]# cp -r /root/cxykk.com/ /tmp/
[root@node01 ~]# cd /tmp/
[root@node01 tmp]# ll
total 4
#可以看到已经复制成功
drwxr-xr-x 2 root root  6 Apr 29 23:20 cxykk.com
lrwxrwxrwx 1 root root 15 Apr 21 11:18 soft-link-new -> /root/soft-link
省略...
[root@node01 tmp]# 

例子2:复制软链接

如果源文件不是一个普通文件,而是一个软链接文件,那么是否可以复制软链接的属性呢?
下面带大家一起来试试:

实践是检验真理的唯一标准

#建立一个测试软链接文件,如果已存在,请先使用rm -rf xxx删除
[root@node01 ~]# touch /root/cxykk.com
[root@node01 ~]# ln -s /root/cxykk.com /tmp/cxykk.com_slink
[root@node01 ~]# ll /tmp/cxykk.com_slink 
lrwxrwxrwx 1 root root 15 May  6 22:37 /tmp/cxykk.com_slink -> /root/cxykk.com
#复制软链接文件,但是不加“-d”选项参数
[root@node01 ~]# cp /tmp/cxykk.com_slink /tmp/cxykk.com_slink2
[root@node01 ~]# ll /tmp/cxykk.com_slink2
-rw-r--r-- 1 root root 0 May  6 22:40 /tmp/cxykk.com_slink2
#复制软链接文件,加“-d”选项参数
[root@node01 ~]# cp -d /tmp/cxykk.com_slink /tmp/cxykk.com_slink3
[root@node01 ~]# ll /tmp/cxykk.com_slink3
lrwxrwxrwx 1 root root 15 May  6 22:41 /tmp/cxykk.com_slink3 -> /root/cxykk.com
[root@node01 ~]# 

这个例子说明
如果在复制软链接文件时不使用“-d”选项,则cp命令复制的是源文件,而不是软链接文件;
只有加入了“-d”选项,才会复制软链接文件。请大家注意,“-d”选项对硬链接是无效的。:

例子3:保留源文件属性复制

在上面的例子中,细心的同学可能会发现,在执行复制命令后,目标文件的时间会变成复制命令的执行时间,而不是源文件的时间。
例如:

#复制软链接文件,加“-d”选项参数
[root@node01 ~]# cp -d /tmp/cxykk.com_slink /tmp/cxykk.com_slink3
[root@node01 ~]# ll /tmp/cxykk.com_slink3
#注意源文件的所属组和时间
#由于复制命令由root执行,所以目标文件的所属组也变成了root,而且时间变成了复制命令的时间
lrwxrwxrwx 1 root root 15 May  6 22:41 /tmp/cxykk.com_slink3 -> /root/cxykk.com

但是,当我们在执行一些特殊复制场景时,文件的时间可能是一个重要的参数,我们希望在复制的时候,能够保留源文件的属性复制,那么该怎么办呢?
办法当然也是有的, 这就需要“-p”选项参数上场了。
这个选项会保留源文件的属性,包括所有者、所属组和时间。
例如:

[root@node01 ~]# cp -p /root/cxykk.com /tmp/cxykk.com_p
[root@node01 ~]# ll /tmp/cxykk.com_p
#复制出来的文件所属组和执行时间都保留了源文件的属性
-rw-r--r-- 1 root root 0 May  6 22:35 /tmp/cxykk.com_p
[root@node01 ~]# 

我们之前讲过,“-a”选项相当于“-dpr”选项,这几个选项我们已经分别讲过了。
所以,当我们使用“-a”选项时,目标文件和源文件的所有属性都一致,包括源文件的所有者、所属组、时间和软链接属性。

所以,使用“-a”选项来取代“-dpr”选项更加方便

例子4:“-l”和“-s”选项
  • -l: 把目标文件建立为源文件的硬链接文件,而不是复制源文件
  • -s: 把目标文件建立为源文件的软链接文件,而不是复制源文件

这两个选项和“-d”选项是不同的,“-d”选项要求源文件必须是软链接,目标文件才会复制为软链接;
而“-l”和“-s”选项的源文件只需是普通文件,目标文件就可以直接复制为硬链接和软链接。
例如:

#查看cxykk.com文件,测试文件
[root@node01 ~]# ll /root/cxykk.com 
#使用“-l”选项,将目标文件复制为硬链接
[root@node01 ~]# cp /root/cxykk.com /tmp/cxykk.com_ll
#查看复制后的文件,为硬链接文件
[root@node01 ~]# ll /tmp/cxykk.com_ll
-rw-r--r-- 1 root root 0 May  6 22:58 /tmp/cxykk.com_ll
#使用“-s”选项,将目标文件复制为软链接文件
[root@node01 ~]# cp -s /root/cxykk.com /tmp/cxykk.com_ss
#查看复制后的文件,为软链接文件
[root@node01 ~]# ll /tmp/cxykk.com_ss
lrwxrwxrwx 1 root root 15 May  6 22:59 /tmp/cxykk.com_ss -> /root/cxykk.com
[root@node01 ~]# 

4.3 mv命令

1、基本信息

mv是用来剪切的命令,其基本信息如下:

  • 命令名称:mv
  • 英文原意:move (rename) files
  • 所在路径:/bin/mv
  • 执行权限:所有用户
  • 功能描述:移动文件或改名

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。
这是大佬写的, 7701页的BAT大佬写的刷题笔记,让我offer拿到手软

2、命令格式

[root@node01 ~]# mv [选项] 源文件 目标文件
选项:
    -f:    强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
    -i:    交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
    -n:    如果目标文件已经存在,则不会覆盖移动,而且不询问用户
    -v:    显示详细信息

3、常见用法

例子1:移动文件或目录
#创建mv命令测试文件
[root@node01 ~]# touch cxykk.com_mv
[root@node01 ~]# ll
------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
-rw-r--r--  1 root root     0 May  6 22:35 cxykk.com
-rw-r--r--  1 root root     0 May  6 23:07 cxykk.com_mv
......省略
#移动/root/cxykk.com_mv到/tmp/目录下,且源文件会删除,类似于剪切
[root@node01 ~]# mv cxykk.com_mv /tmp
[root@node01 ~]# ll /tmp/
total 0
-rw-r--r-- 1 root root  0 May  6 22:58 cxykk.com_ll
-rw-r--r-- 1 root root  0 May  6 23:07 cxykk.com_mv
......省略
#查看源文件~当前目录下,已经没有cxykk.com_mv文件了
[root@node01 ~]# ll
total 40
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
-rw-r--r--  1 root root     0 May  6 22:35 cxykk.com
drwxr-xr-x  2 root root     6 Oct 25  2023 etc
......省略
You have new mail in /var/spool/mail/root
[root@node01 ~]# 
例子2:强制移动

在windows移动文件时,是不是经常遇到下面这种提示,每次都需要我们手动点击确认才能完成移动
image.png
在Linux系统中,默认移动文件如果存在相同名称的文件,也会提示是否覆盖。
例如:

#在/tmp目录下创建一个与/root目录下同名的文件
[root@node01 ~]# touch /tmp/cxykk.com
[root@node01 ~]# ll /tmp
total 0
-rw-r--r-- 1 root root  0 May  6 23:15 cxykk.com
-rw-r--r-- 1 root root  0 May  6 22:58 cxykk.com_ll
......省略
#移动~目录下的cxykk.com文件到/tmp目录下
[root@node01 ~]# mv cxykk.com /tmp/
#询问是否覆盖,输入y覆盖,输入n不覆盖
mv: overwrite ‘/tmp/cxykk.com’? y
[root@node01 ~]# 

这时如果移动的同名文件较多,则需要一个一个文件进行确认,很不方便。

如果我们确认需要覆盖已经存在的同名文件,不想一个一个确认该怎么办呢?

那就可以使用“-f”选项参数了

-f: 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖

#在家目录下重新创建cxykk.com同名文件
[root@node01 ~]# touch cxykk.com
[root@node01 ~]# ll
total 40
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
-rw-r--r--  1 root root     0 May  6 23:20 cxykk.com
......省略
#强制覆盖移动,可以看到没有询问是否覆盖,直接覆盖成功
[root@node01 ~]# mv -f cxykk.com /tmp/
[root@node01 ~]# 
例子3:不覆盖移动

既然可以强制覆盖移动,那也有需要不覆盖的移动场景。
如果需要移动几百个同名文件,但是不想覆盖,这时就需要“-n”选项的帮助了。
例如:

#在家目录下建立测试文件cxykk.com、cxykk.com_nn
[root@node01 ~]# touch cxykk.com_nn
[root@node01 ~]# touch cxykk.com
[root@node01 ~]# ll
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
-rw-r--r--  1 root root     0 May  6 23:24 cxykk.com
-rw-r--r--  1 root root     0 May  6 23:24 cxykk.com_nn
......省略
#移动家目录下cxykk.com、cxykk.com_nn到/tmp目录下
[root@node01 ~]# mv -vn cxykk.com cxykk.com_nn /tmp/
#从移动详情中可以看出,只移动了cxykk.com_nn文件,cxykk.com并没有移动
#因为cxykk.com文件在/tmp目录下已经存在了
#“-v”选项输出详细移动信息
‘cxykk.com_nn’ -> ‘/tmp/cxykk.com_nn’
[root@node01 ~]# 

补充知识:
如果想要看到详细移动日志,可以加上“-v”选项参数

例子4:改名

我们上面都是从一个目录移动到另一个目录中,如果将一个文件在同一个目录下移动会怎么样呢?
下面我们来实践一下看看

#查看家目录下cxykk.com文件
[root@node01 ~]# ll
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
-rw-r--r--  1 root root     0 May  6 23:24 cxykk.com
......省略
#在同一个目录下移动
[root@node01 ~]# mv cxykk.com cxykk.com_new
[root@node01 ~]# ll
-rw-------. 1 root root  1230 Apr 18 23:23 anaconda-ks.cfg
#可以看到cxykk.com文件不在了,变成了cxykk.com_new文件了
-rw-r--r--  1 root root     0 May  6 23:24 cxykk.com_new
drwxr-xr-x  2 root root     6 Oct 25  2023 etc
......省略
[root@node01 ~]# 

看到这里明白了吧,如果源文件和目标文件在同一个目录中,那就是改名。
所以以后在linux如果想要把一个文件改名字,知道怎么操作了吧

本文总结

目录和文件都能操作的命令是我们在日常运维中比较常用的,所以是大家重点要掌握的。

毕竟记住一个命令可以干两件事

在这里也给大家提一个小的建议,不要只看,要亲自动手实践操作感受一遍,并且运用一定的记忆技巧来记住这些命令。

比如mv命令,大家可以想到move(移动)这个单词。其他很多命令都有类似的技巧。

切勿眼高手低。我们要做到我要么不学,一旦开始学了,我就学透它,不然时间也浪费了,还没有收获

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。
这是大佬写的, 7701页的BAT大佬写的刷题笔记,让我offer拿到手软

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/597533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之DCGAN

目录 须知 转置卷积 DCGAN 什么是DCGAN 生成器代码 判别器代码 补充知识 LeakyReLU(x) torch.nn.Dropout torch.nn.Dropout2d DCGAN完整代码 运行结果 图形显示 须知 在讲解DCGAN之前我们首先要了解转置卷积和GAN 关于GAN在这片博客中已经很…

GraphGPT——图结构数据的新语言模型

在人工智能的浪潮中,图神经网络(GNNs)已经成为理解和分析图结构数据的强大工具。然而,GNNs在面对未标记数据时,其泛化能力往往受限。为了突破这一局限,研究者们提出了GraphGPT,这是一种为大语言…

ASP.NET MVC(二) HtmlHelper

强类型 》》》 Form Html.Action() 执行一个Action,并返回html字符串。 Html.ActionLink() 生成一个超链接。 》》》 htmlhelper 扩展方法 /// 扩展方法 三要素 静态类静态方法this 》》》》上面需要引入命名空间, 》》》 不需要引入命名空间 pu…

每日OJ题_DFS解决FloodFill⑥_力扣529. 扫雷游戏

目录 力扣529. 扫雷游戏 解析代码 力扣529. 扫雷游戏 529. 扫雷游戏 难度 中等 让我们一起来玩扫雷游戏! 给你一个大小为 m x n 二维字符矩阵 board ,表示扫雷游戏的盘面,其中: M 代表一个 未挖出的 地雷,E 代表…

计算机系列之数据库技术

13、数据库技术(重点、考点) 1、三级模式-两级映像(考点) 内模式:管理如何存储物理的数据,对应具体物理存储文件。 **模式:**又称为概念模式,就是我们通常使用的基本表&#xff0c…

AquiSense实现UV-C发光二极管里程碑

国际空间站饮水机上使用的UV-C LED技术 紫外线LED水消毒系统制造商AquiSense Technologies宣布,该公司的UV-C LED技术已成功集成到美国国家航空航天局(NASA)国际空间站(ISS)上的饮用水分配器中,并自2023年8…

【Git】回滚旧提交版本且不影响最新提交版本

【Git】回滚旧提交版本且不影响最新提交版本 一、场景假设 远程仓库origin中有一个分支main,有4次提交记录:v1、v2、v3、v4。 二、需求 需要回滚旧提交版本,但不影响已有的所有提交版本(即不影响最新提交版本)&…

树和二叉树:二叉树的基本运算算法的实现

一.前言 当前版本仅供笔者复盘 二.二叉树 2.1题目 编写一个程序,实现二叉树的基本运算,具体要求如下:(指定示范实例1:图1。指定示范实例2:图2 ) 1,先序遍历输出该树&#xff08…

PWM 开发舵机SG90-硬件舵机实战

1.PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节…

hadoop学习---基于Hive的数仓搭建增量信息拉链表的实现

拉链表就是SCD2,它的优点是即满足了反应数据的历史状态,又能在最大程度上节省存储。 拉链表的实现需要在原始字段基础上增加两个新字段: start_time(表示该条记录的生命周期开始时间——周期快照时的状态)end_time(该条记录的生命周期结束时…

JSP合同信息管理系统参考论文(论文 + 源码)

【免费】JSP合同信息管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89273651JSP合同信息管理系统 摘要 随着信息科学技术的飞速发展,人们逐渐意识到对信息管理软件的运用可以使日常工作更加方便、快捷和高效。论文详细论述了公司合同管理系…

Mysql 8.0 -- 最新版本安装(保姆级教程)

Mysql 8.0 -- 最新版本安装(保姆级教程) ​​ 一,下载Mysql数据库: 官网链接:https://www.mysql.com/downloads/ 二,安装Mysql: 三,找到Mysql安装目录: 找到mysql安装目录&#xf…

在k8s中安装Grafana并对接Prometheus,实现k8s集群监控数据的展示

🐇明明跟你说过:个人主页 🏅个人专栏:《Grafana:让数据说话的魔术师》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Grafana简介 2、Grafana的重要性与影响力 …

C进阶--自定义类型

自定义类型 1. 结构体1.1. 结构的基本知识1.2 结构的声明1.3 特殊的声明1.4 结构的自引用1.5 结构体变量的定义和初始化1.6 结构体内存对齐结构体的大小练习结构体对齐规则为什么存在内存对齐? 1.7 修改默认对齐数1.8 结构体传参 2. 位段2.1 什么是位段2.2 位段的内存分配2.3 …

MWeb Pro for Mac:功能强大的Markdown博客编辑器

MWeb Pro for Mac是一款功能强大的Markdown博客编辑器,专为Mac用户设计,提供了一站式的博客写作和发布体验。这款软件不仅支持Markdown语法,还提供了丰富的编辑和排版功能,让用户能够轻松创建出精美的博客内容。 MWeb Pro的即时预…

笔试强训Day16 字符串 基础算法 双指针

QR6 字符串替换 题目链接&#xff1a;字符串替换_牛客题霸_牛客网 (nowcoder.com) 思路&#xff1a;简单的字符串操作。 AC code&#xff1a; class StringFormat { public:string formatString(string A, int n, vector<char> arg, int m) {string ans;int pos 0;f…

【Qt】按钮类控件

文章目录 1 :peach:Push Button:peach:2 :peach:Radio Buttion:peach:3 :peach:Check Box:peach:4 :peach:Tool Button:peach: 1 &#x1f351;Push Button&#x1f351; 使⽤ QPushButton 表⽰⼀个按钮&#xff0c;这也是当前我们最熟悉的⼀个控件了&#xff0c;QPushButton …

论文阅读:《Sequence can Secretly Tell You What to Discard》,减少推理阶段的 kv cache

目前各类大模型都支持长文本&#xff0c;例如 kimi chat 以及 gemini pro&#xff0c;都支持 100K 以及更高的上下文长度。但越长的上下文&#xff0c;在推理过程中需要存储的 kv cache 也越多。假设&#xff0c;数据的批次用 b 表示&#xff0c;输入序列的长度仍然用 s 表示&a…

3.栈和队列(汇总版)

目录 1.栈&#xff08;一端插和删&#xff09; 2.队列&#xff08;一端插另一段删&#xff09; 2.1队列的概念及结构 2.2 队列的实现 队列的接口 1.初始化队列 2.销毁队列 3.插入元素 4.出队列&#xff08;头删&#xff09; 5.访问对头 6.访问队尾 7.判断队列是否为…

基于springboot实现的疫情网课管理系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…