CentOS 7 实战指南:文件操作命令详解

 

写在前面

想要快速掌握 CentOS 7 系统下的文件操作技巧吗?不用担心!我为你准备了一篇详细的技术文章,涵盖了各种常用的文件操作命令。无论您是初学者还是有一定经验的用户,这篇文章都能帮助您加深对 CentOS 7 文件操作的理解,让您轻松应对各种文件管理任务。立即阅读这篇实用的指南,让文件操作变得简单高效!

文件操作相关命令

ls

ls 是一个常用的命令,其作用是列出指定目录下的文件和子目录。下面是 ls 命令的一些常见可选参数:

  • -a:显示所有文件(包括以.开头的隐藏文件)。
  • -l:以长格式显示文件的详细信息,包括权限、所有者、大小、修改日期等。
  • -h:以人类可读的方式显示文件大小。
  • -r:反向排序,按字母降序排列。
  • -t:按修改时间排序,最近修改的文件在前。

这些参数可以根据需要进行组合使用。以下是一些示例:

列出当前目录下的所有文件和子目录:

ls

列出当前目录下的所有文件和子目录,包括隐藏文件:

ls -a

以长格式显示当前目录下的所有文件和子目录:

ls -l

以人类可读的方式显示当前目录下的所有文件和子目录:

ls -h

以反向排序的方式列出当前目录下的所有文件和子目录:

ls -r

按修改时间排序,列出当前目录下的所有文件和子目录:

ls -t

列出当前目录下所有文件和子目录的详细信息并按其修改时间进行降序排列:

ls -lt

ls -l 命令以长格式显示文件的详细信息,输出的内容包括以下几个字段:

  • 文件类型和权限:第一列显示了文件的类型和权限信息。第一个字符表示文件类型,常见的类型包括:
    • -:普通文件
    • d:目录
    • l:符号链接
    • c:字符设备文件
    • b:块设备文件
    • s:套接字(socket)
    • p:命名管道(FIFO)
    • 接下来的九个字符表示文件的权限,每三个字符为一组,分别表示所有者(Owner)、所属组(Group)和其他用户(Others)的权限。每组权限字符包括读取(r)、写入(w)和执行(x)的权限。如果某个权限对应的字符是 -,表示没有该权限。
  • 连接数(Links):第二列显示了指向该文件的硬链接数量。
  • 所有者(Owner):第三列显示了文件的所有者。
  • 所属组(Group):第四列显示了文件的所属组。
  • 文件大小(Size):第五列显示了文件的大小,以字节为单位。
  • 修改日期和时间:第六列和第七列显示了文件的最近修改日期和时间。
  • 文件名:最后一列显示了文件或目录的名称。

就以上面截图上为例来说明一下:

drwxr-xr-x. 2 root root  6 12月 30 17:06 book
-rw-r--r--. 1 root root  0 12月 30 17:05 apt.txt
-rw-r--r--. 1 root root 15 12月 30 16:50 test.txt

在这个示例中,第一行第一列显示了文件类型和权限,第一行是d,表示目录,目录的名称是book;第二、三行的第一列是-,则表示是普通文件,这些文件的名称是app.txt、test.txt,再往后连续九位,每三个字符为一组,分别表示所有者(Owner)、所属组(Group)和其他用户(Others)的权限,每组权限字符包括读取(r)、写入(w)和执行(x)的权限。如果某个权限对应的字符是 -,表示没有该权限;第二列显示了链接数,第三列和第四列显示了文件的所有者和所属组,第五列显示了文件大小,第六列和第七列显示了最近修改的日期和时间,最后一列显示了文件或目录的名称。

touch

touch命令的主要作用是创建新文件或修改现有文件的访问和修改时间戳。需要注意的是,touch 命令不会更改文件的内容,只会修改时间戳。

touch test.txt

cp

cp 命令用来复制文件,可以将源文件复制到目标位置。可选参数包括:

  • -r:复制目录及其内容。
  • -i:交互式复制文件,覆盖前进行提示确认。

复制源文件到指定目标文件:当前路径下的apt.txt文件到apt2.txt文件,apt2.xt也在当前路径下,如果apt2.txt文件不存在,则会创建这个文件;如果存在,则会提示是否覆盖,如果输入y,则表示是;如果输出n,则表示否;

cp apt.txt apt2.txt

复制文件到目标目录:复制file.txt到当前目录下的子目录target目录内;

cp file.txt ./target/

复制多个文件到目标目录:复制apt.txt、apt2.txt、apt3.txt到当前目录下的子目录book内;

cp apt.txt apt2.txt apt3.txt ./book/

递归复制目录及其内容:复制book目录下所有目录以及文件(包含子目录的子目录)到当前路径下的子目录book2内;

cp -r book/ ./book2

交互式复制文件:如果目标文件已经存在,则会提示用户是否覆盖目标文件。这样可以避免误操作导致目标文件被覆盖或者丢失,提高复制的安全性。具体来说,当执行 cp -i file.txt ./target/ 命令时,如果file.txt文件在target目录中已经存在,则 cp 命令会提示用户是否覆盖目标文件。如果用户选择“y”(yes),则目标文件将被覆盖;如果用户选择“n”(no)或其他任何键,则 cp 命令将不会覆盖目标文件,而是跳过该文件的复制。

cp -i file.txt ./target/

mv

使用 mv 命令来移动文件或对其进行重命名。它的作用是将文件从一个位置移动到另一个位置或更改文件名。可选参数包括:

  • -i:移动或重命名前进行提示确认。
  • -u:仅移动比目标文件新或不存在的文件。

移动文件到目标目录:

mv test.txt ./book2/

重命名文件:

mv test.txt test2.txt

将多个文件移动到目标目录:

cp test.txt test2.txt /opt/

交互式移动文件:如果目标文件已经存在,则会提示用户是否覆盖目标文件。这样可以避免误操作导致目标文件被覆盖或者丢失,提高复制的安全性。具体来说,当执行 mv -i test.txt test2.txt /opt/ 命令时,如果test.txt文件、test2.txt文件在opt目录中已经存在,则 mv 命令会提示用户是否覆盖目标文件。如果用户选择“y”(yes),则目标文件将被覆盖;如果用户选择“n”(no)或其他任何键,则 cp 命令将不会覆盖目标文件,而是跳过该文件的移动。

mv -i test.txt test2.txt /opt/

仅移动源文件中较新的文件到目标目录:

当你运行 mv -u 命令时,mv 命令会比较源文件和目标目录中的同名文件的修改时间。如果源文件的修改时间较新(即源文件被更新过),则该文件会被移动到目标目录;如果目标目录中已存在同名文件且修改时间较新,则不会进行移动操作。

这个选项在需要将最新版本的文件从一个目录移动到另一个目录时特别有用,可以避免重复移动旧版本的文件。

例如,假设在当前目录下有一个名为 file.txt 的文件,而在 ./target/ 目录下也存在一个名为 file.txt 的文件,如果你运行以下命令:

mv -u file.txt ./target/

如果 ./target/ 目录中的 file.txt 文件的修改时间较新,那么 mv 命令将不会移动该文件,否则它将被移动到 ./target/ 目录中。只有文件的修改时间较新时,才会触发移动操作。

rm

使用 rm 命令来删除文件。可选参数包括:

  • f:强制删除文件或目录,不提示确认。
  • i:交互式操作,在删除前提示用户确认。
  • r:递归删除目录及其内容。
  • v:显示详细的删除过程。

删除文件:

rm file.txt

强制删除文件,不提示确认:

rm -f file.txt

交互式删除文件:使用 rm -i 命令来删除文件时,会在删除前提示用户确认是否要删除文件。如果用户输入 "y" 或 "yes" 确认删除,则文件将被删除;如果用户输入 "n" 或 "no" 取消删除,则该文件不会被删除

rm -i file.txt

删除目录及其内容:

rm -r directory/

递归删除目录及其内容,且不提示确认:

rm -rf directory/

cat

在 CentOS 中,cat 是一个用于连接文件并打印到标准输出的命令。它的名称源自 "concatenate"(连接)的缩写。cat 命令通常用于以下几个方面:

  • 查看文件内容:可以使用 cat 命令查看文本文件的内容,并将其打印到终端上。
cat file.txt
  • 连接文件:cat 命令还可以用于将多个文件连接在一起,并将结果输出到标准输出或另一个文件中。
cat test.txt test2.txt > test3.txt

  • 创建新文件:通过将 cat 命令与重定向操作符 > 结合使用,可以创建一个新文件并将内容写入其中。可以按ctrl+d键,保存输入的内容并退出,这里我输入了一句hello world !
cat > test4.txt hello world !
  • 显示行号:通过添加 -n 选项,cat 命令可以显示文件中每一行的行号。
cat -n file.txt
  • 串联文件:使用 cat 命令的重定向操作符 >>,可以将一个文件的内容附加到另一个文件的末尾。
cat file1.txt >> file2.txt

请注意,cat 命令在处理大型文件时可能会有性能问题,因为它会一次性读取整个文件并将其输出到标准输出。如果你只需要查看文件的一部分内容,或者处理大型文件,请考虑使用其他更适合的工具,如 less 或 tail。

tail

在 CentOS 中,tail 是一个用于显示文件末尾内容的命令。它可以用来实时监视文件的更新情况,也可以用来查看文件的最后几行内容。tail 命令的基本语法如下:

tail [选项] 文件名

常用的选项包括:

  • -f:实时跟踪文件的更新情况,当文件有新内容追加时,自动输出新内容。
  • -n:指定要显示的文件末尾多少行的内容,默认为 10 行。
  • -c:指定要显示的文件末尾多少字节的内容。
  • -q:不显示文件名。
  • -v:始终显示文件名。

以下是一些使用示例:

  • 查看文件的最后 10 行内容:
tail file.txt
  • 实时监视文件的更新情况,并输出新增的内容:
tail -f file.txt
  • 显示文件的最后 20 行内容:
tail -n 20 file.txt
  • 显示文件的最后 1000 个字节的内容:
tail -c 1000 file.txt
  • 在输出中不显示文件名:
tail -q file.txt

请注意,如果你使用 tail -f 命令来实时监视文件的更新情况,请确保终端处于活动状态,以免出现任何不必要的问题。此外,如果你需要查看文件的完整内容,请考虑使用其他工具,如 less 命令。

vi/vim

在 CentOS 中,vi 是一个文本编辑器,它是一个强大而广泛使用的命令行编辑器。vi 具有很多功能和快捷键,可以用于编辑文本文件。

要使用 vi 命令,可以按照以下步骤进行操作:

打开文件:使用 vi 命令后面跟上要编辑的文件名来打开文件。

vi file.txt

进入编辑模式:默认情况下,vi 打开文件后处于命令模式。要进入编辑模式,按下 i 键(插入模式),然后可以开始编辑文件。

编辑文件:在编辑模式下,你可以自由地编辑文本文件。你可以添加、删除、修改文本内容,使用光标键(方向键或 hjkl)来移动光标。

保存文件:在编辑完成后,按下 Esc 键回到命令模式,然后输入 :w 命令来保存文件。

:w

退出 vi:要退出 vi,在命令模式下输入 :q 命令。

:q

如果你在编辑过程中对文件进行了修改并且想强制保存,可以使用 :w! 命令。如果想同时保存并退出编辑器,可以使用 :wq 命令。

当然除了上述基本操作外,vi 还具有许多其他功能和命令。例如,可以使用 / 进行搜索、使用 :s 进行替换、使用 u 进行撤销等。如果有兴趣,可以查阅相关的手册。

  • 另一个指令是vim,vim(Vi IMproved)是在 vi(Visual Editor)基础上进行改进和扩展的文本编辑器,一般情况下vi指令对于我来说已经够用了。那么vim与vi的区别在哪呢:
  • 功能扩展:vim 添加了许多新的功能,例如语法高亮、代码折叠、多级撤销、多窗口编辑、标签页等。这些功能使得 vim 更适合开发人员和程序员。
  • 易用性改进:vim 对编辑器的使用体验进行了改进。它增加了更多的命令和快捷键,提供了更直观的操作方式,使得编辑过程更高效。
  • 插件支持:vim 支持丰富的插件系统,可以通过安装插件来扩展编辑器的功能。这使得用户可以根据自己的需求自定义 vim 的行为和外观。
  • 兼容性:vim 是对 vi 的增强版本,因此它与 vi 具有很高的兼容性。大部分 vi 的命令和操作在 vim 中仍然有效,因此 vi 用户可以无缝地切换到 vim。
  • 可定制性:vim 允许用户通过修改配置文件来定制编辑器的行为。用户可以更改键绑定、设置颜色方案、定义自己的宏等。

总的来说,vim 是 vi 的升级版,提供了更多的功能和改进的使用体验。对于需要更强大编辑器的用户,特别是开发人员和程序员,vim 是一个更好的选择。但对于只需进行基本文本编辑的用户来说,vi 仍然是一个简单而有效的选择。所以知道怎么选择了吧?

find

使用 find 命令来查找文件。它的作用是在指定路径下查找符合条件的文件。常用的可选参数包括:

  • -name pattern:按照文件名匹配模式来搜索文件。例如 -name "*.txt" 表示搜索所有扩展名为 .txt 的文件。
  • -type type:按照文件类型进行搜索。常用的类型包括 f(普通文件)、d(目录)、l(符号链接)等。
  • -size n[cwbkMG]:按照文件大小进行搜索。可以使用 +n 表示大于 n,-n 表示小于 n,n 表示精确匹配大小。后缀 c 表示字节,w 表示两个字节,b 表示块(默认为 512 字节),k 表示千字节,M 表示兆字节,G 表示吉字节。
  • -mtime n:按照文件修改时间进行搜索。n 表示天数,+n 表示超过 n 天,-n 表示不超过 n 天。
  • -user username:按照文件所有者进行搜索。
  • -group groupname:按照文件所属组进行搜索。
  • -perm mode:按照文件权限进行搜索。例如 -perm 644 表示搜索权限为 644 的文件。
  • -exec command {} ;:对搜索到的文件执行指定的命令。{} 表示搜索到的文件名,; 表示命令结束。
  • -print:将搜索到的文件名打印输出。

在 CentOS 7 中,find 命令的用法与其他 Linux 发行版基本相同。以下是一些常用的 find 命令示例:

  • 查找特定文件名:
find ./ -name "test*.txt" find /opt/ -name "test*.txt"
  • 查找特定目录名:
find /opt/ -type d -name "book*"
  • 查找特定文件类型:
find /opt/ -type f -name "ayi.*"
  • 查找特定大小的文件:
find /opt/ -type f -size -1M find /opt/ -type f -size +30c
  • 查找特定所有者的文件:
find /path/to/search -user username
  • 查找特定权限的文件:
find /path/to/search -perm mode
  • 查找最近修改的文件:
find /path/to/search -mtime n
  • 执行命令并打印搜索结果:
find /path/to/search -exec command {} ;
  • 将搜索结果输出到文件:
find /path/to/search -name "filename" > output.txt

请注意,上述命令中的 /path/to/search 是要搜索的目录路径,filename 是要查找的文件名,directoryname 是要查找的目录名,extension 是要查找的文件扩展名,username 是文件的所有者,mode 是文件的权限。

写在最后

在这篇关于 CentOS 7 文件操作的技术文章中,我为小伙伴们提供了丰富的命令使用方法和示例,帮助你轻松掌握文件管理的要点。如果您觉得这篇文章对您有所帮助,不妨点赞并收藏起来,方便日后查阅和分享给其他人。我相信,这篇文章将成为你在 CentOS 7 文件操作方面的最佳参考资料。感谢您的支持,让我们一起向更高级的文件操作技巧迈进!点赞和收藏,留下您宝贵的支持和建议。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL基础入门(二)

多表内容 一对多 这个内容是黑马的入门问题,可以带大家思考一下这个怎么设计 我们要知道一个岗位可以对应很多用户,而一个用户只能对应一个岗位,这就属于一对多的类型 那么我们需要怎么将他们进行关联呢? 现在我们可以通过一个…

【OpenAI Q* 超越人类的自主系统】DQN :Q-Learning + 深度神经网络

深度 Q 网络:用深度神经网络,来近似Q函数 DQN(深度 Q 网络) 深度神经网络 Q-LearningQ-Learning模型结构损失函数经验回放探索策略流程关联 DQN 优化DDQN:双 DQN,实现无偏估计Dueling DQN:提高…

Quartus的Signal Tap II的使用技巧

概述: Signal Tap II全称Signal Tap II Logic Analyzer,是第二代系统级调试工具,它集成在Quartus II软件中,可以捕获和显示实时信号,是一款功能强大、极具实用性的FPGA片上调试工具软件。 传统的FPGA板级调试是由外接…

ROS学习记录:用C++实现对wpr_simulation软件包中机器人的运动控制

一、在工作空间下输入catkin_make进行编译 二、在工作空间中输入source ./devel/setup.bash后回车 三、机器人的运动控制在wpr_simulation中有一个例子程序,在工作空间中输入: roslaunch wpr_simulation wpb_simple.launch后回车 四、就会启动一个仿真环…

菜鸟网络Java实习一面面经

自我介绍,做过的项目 巴拉巴拉 你项目中用到redis,可以介绍一下为什么使用它吗? 基于内存操作,内存读写速度快。 支持多种数据类型,包括String、Hash、List、Set、ZSet等。 支持持久化。Redis支持RDB和AOF两种持久…

Transformer基本结构

Transformer基本结构 输入部分、编码部分、解码部分、输出部分 1、输入部分 原文本嵌入层及其位置编码器目标文本嵌入层及其位置编码器 位置编码器(PositionalEncoding):将词汇位置不同可能会产生不同语义的信息加入到词张量中,以弥补位置信息的缺失 …

Win10 + 4090显卡配置深度学习环境 + gaussian-splatting配置 + 实测自己的场景

目录 1 安装Anaconda 2023.09版本 2 安装CUDA11.8 3 安装深度学习库Cudnn8.6.0 4 安装VSCODE2019 5 安装Colmap3.8 6 安装git 7 安装Python3.10 Pytorch2.0.0 7 安装项目 8 采集数据 8.1 IPhone 14 pro 拍摄30张照片左右 做预处理 8.2 生成colmap位姿等信息 8.3 开…

STM32——F407定时器概述

1 定时器分类 定时器类型数量位号位宽时钟捕获/比较输出DMA请求计数互补输出基本2TIM6,TIM716bitAPB1-有递增-通用2TIM2,TIM532bitAPB14通道有递增、递减、中心对齐-通用2TIM3,TIM432bitAPB14通道有递增、递减、中心对齐-通用1TIM916bitAPB14通道有递增-通用2TIM10、TIM1116bi…

独立站的营销策略:吸引顾客的秘密武器

一、独立站的重要性 独立站是指企业自主建立的电子商务网站,具有独立的域名和运营管理权。通过独立站,企业可以展示产品信息、提供在线服务、进行促销活动等,与顾客建立互动和信任关系。独立站的重要性在于它可以帮助企业建立品牌认知度、提…

面向对象基础-类与对象-封装

1、类与对象 1.1 概念 类:类是一个抽象的概念,用于描述一类对象的特点。 对象:根据类的概念所创造的实体。 【思考】一个对象可以没有对应的类嘛? 不可以,因为必须现有类才能创建对象。 1.2 类的内容 类中最基础的内容…

pygame学习(一)——pygame库的导包、初始化、窗口的设置、打印文字

导语 pygame是一个跨平台Python库(pygame news),专门用来开发游戏。pygame主要为开发、设计2D电子游戏而生,提供图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)…

maven中dependencyManagement标签

简介 dependencyManagement正如其名,用于项目依赖的统一管理。 在父项目中的pom.xml文件中加入dependencyManagement标签即可完成依赖版本的声明。在声明完成后,子项目(module)中引用相同的依赖时可以不指定version标签自动引入…

【26.4K⭐】ShareX:一款开源免费、功能强大且丰富的截屏录屏软件

【26.4K⭐】ShareX:一款开源免费、功能强大且丰富的截屏录屏软件 在日常工作、学习和娱乐过程中,我们经常需要截取屏幕或者录制屏幕上特定区域中的内容并进行标记、编辑等操作。无论是为了记录重要的信息、分享有趣的内容,还是为了制作教程和…

toto的2023年终总结

第一次写年终总结,其实顺带是把大学四年的学习都给总结了一下,称之为大学总结更为合适吧? 其实把年终总结发在CSDN上有些不适,之前一直想着搭一个自己的博客也因为种种事情一直没有完成, 索性发在这里了,作…

20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850

20231228在Firefly的AIO-3399J开发板的Android11的Firefly的AIO-3399J开发板的DTS配置单前置摄像头ov13850 2023/12/28 12:30 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBr…

unity学习笔记----游戏练习03

一、修复植物种植的问题 1.当手上存在植物时,再次点击卡片上的植物就会在手上添加新的植物,需要修改成只有手上没有植物时才能再次获取到植物。需要修改AddPlant方法。 public bool AddPlant(PlantType plantType) { //防止手上出现多个植…

分享一个学习Typescript最全的Github网站

一个专注研究Typescript的网站,🎖🎖🎖在这里你可以全面深入学习Typescript相关知识,通过动画方式讲解TS,还有很多常见问题解答。你还可以挑战相应的题目,快来学习吧 我就懒一点,直接原滋原味的…

c语言:打印平行四边形|练习题

一、题目 输入平行四边形的边数&#xff0c;用星号打印平行四边形 如图&#xff1a; 二、思路分析 图形分为两部分 1、左边的空格 2、右边的星号 因此&#xff0c;把空格和星号合起来&#xff0c;就是要求的图形 三、代码图片【带注释】 四、源代码【带注释】 #include <s…

【AI】计算机视觉VIT文章(Transformer)源码解析

论文&#xff1a;Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020 源码的Pytorch版&#xff1a;https://github.com/lucidrains/vit-pytorch 0.前言 …

三角函数两角和差公式推导

一.几何推理 1.两角和公式 做一斜边为1的直角△ABC,任意旋转非 k Π , k N kΠ,kN kΠ,kN,补充如图,令 ∠ A B C ∠ α &#xff0c; ∠ C B F ∠ β ∠ABC∠α&#xff0c;∠CBF∠β ∠ABC∠α&#xff0c;∠CBF∠β ∴ ∠ D B F ∠ D B A ∠ α ∠ β 90 , ∠ D A …