热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux操作文件与目录

1、通配符由于shell需要经常使用文件名,因此它提供了一些特殊字符来帮助你快速指定一组文件名。这些特殊字符成为通配符。通配符(也叫文件名替换ÿ

1、通配符


由于shell需要经常使用文件名,因此它提供了一些特殊字符来帮助你快速指定一组文件名。这些特殊字符成为通配符。通配符(也叫文件名替换)允许用户依据字符模式选择文件名。



通配符匹配项
*匹配任意多个字符(包括0个和1个)
?匹配任一单个字符(不包括0个)
[characters]匹配任意一个属于字符集中的字符
[!characters]匹配任意一个不属于字符集中的字符
[ [:class:] ]匹配任意一个属于指定字符类中的字符



字符类匹配项
[:alnum:]匹配任意一个字母或数字
[:alpha:]匹配任意一个字母
[:digit:]匹配任意一个数字
[:lower:]匹配任意一个小写字母
[:upper:]匹配任意一个大写字母



模式匹配项
*所有文件
g*以g开头的任一文件
b*.txt以b开头,中间有任意多个字符,并以.txt结尾的任一文件
Data???以Data开头,后面跟3个字符的任一文件
[abc]*以abc中任一个开头的任一文件
BACKUP.[0-9][0-9][0-9]以BACKUP.开头,后面紧跟3个数字的任一文件
[[:upper:]]*以大写字母开头的任一文件
[![:digit:]]*不以数字开头的任一文件
*[[:lower:]123]以小写字母或数字1、2、3中任一个结尾的任一文件

2、mkdir–创建目录


mkdir命令是用来创建目录的,格式为:mkdir directory...
例如:mkdir dir1
例如:mkdir dir1 dir2 dir3



3、cp–复制文件和目录


cp命令用来复制文件和目录。它有两个不是同的使用方式,如下所示:
1、cp item1 item2
将单个文件或目录item1复制到文件或目录item2中。
2、cp item1... directory
将多个项目(文件或目录)复制进一个目录中。



选项含义
-a
- -archive复制文件和目录及其数学,包括所有权和权限。通常来说,复制的文件具有用户所操作文件的默认属性
-i
- -interactive在覆盖一个已存在的文件前,提示用户进行确认。如果没有指定该选项,cp会默认覆盖文件
-r
- -recursive递归地复制目录及其内容。复制目录是需要这个选项(或-a选项)
-u
- -update当将文件从一个目录复制到另一个目录是,只会复制那些目标目录中国不存在的文件或是目标目录相应文件的更新文件
-v
- -verbose复制文件时,显示信息性消息(informative message)


cp命令示例


命令结果
cp file1 file2将file1复制到file2。如果file2存在,则会被file1的内容覆盖。如果file2不存在,则创建file2
cp -i file1 file2同上,区别在于当file2存在是,覆盖之前通知用户确认
cp file1 file2 dir1将file1和file2复制到目录dir1中。dir1必须已经存在
cp dir1/* dir2通过使用通配符,将dir1中的所有文件复制到dir2中。dir2必须已经存在
cp -r dir1 dir2将dir1目录(及其内容)复制到dir2目录中。如果dir2不存在,创建dir2,且包含与dir1目录相同的内容

4、mv–移除和重命名文件


mv命令可以执行文件移动和文件重命名操作,这具体取决于如何使用它。在这两种情况下,完成操作之后,原来的文件名将不存在。mv的使用方法与cp基本相似。
1、mv item1 item2
将文件(或目录)item1移动(或重命名)为item2
2、mv item... directory
将一个或多个条目从一个目录移动到另一个目录下。



选项含义
-i
- -interactive覆盖一个已存在文件之前,提示用户确认。如果没有指定该选项,mv会默认覆盖文件
-u
- -update将文件从一个目录移动到另一个目录,只移动那些目标目录中不存在的文件或是目标目录里相应文件的更新文件
-v
- -verbose移动文件是显示消息性消息


mv命令示例


命令结果
mv file1 file2将file1移到file2。如果file2存在,则会被file1的内容覆盖。如果file2不存在,则创建file2。无论哪一种情况,file1不再存在
mv -i file1 file2同上,仅当file2存在时,覆盖之前通知用户确认
mv file1 file2 dir1将file1和file2移到目录dir1下。dir1必须已经存在
mv dir1 dir2将目录dir1(和其内容)移到目录dir2下。如果目录dir2不存在,创建目录dir2,将目录dir1的内容移到dir2下,同时删除目录dir1

5、rm–删除文件和目录


rm命令用来移除(删除)文件和目录,如下:
rm item...



选项含义
-i
- -interactive删除一个已存在的文件,提示用户确认。如果没有指定这个选项,rm命令会默认删除文件
-r
- -recysive递归地删除目录。也就是说,如果删除的目录有子目录的话,也要将其删除。要删除一个目录,则必须指定该选项
-f
- -force忽略不存在的文件并无需提示确认。该选项会覆盖- -interactive选项
-v
- -verbose删除文件是显示消息性消息


rm命令实例


命令结果
rm file1在不提示用户的情况下,删除file1
rm -i file1删除file1前,提示用户确认
rm -f file1 dir1删除file1、dir1以及它们的内容
rm -rf file1 dir1同上,当在file1或dir1不存在是,rm仍会继续执行,且不提示用户

6、ln–创建链接


ln命令可用来创建硬链接或是符号链接,如下:
1、ln file link
用来创建硬链接
2、ln -s item link
用来创建符号链接,这里的item可以是文件也可以是目录



硬链接

硬链接是最初UNIX用来创建链接的方式,符号链接较之更为先进。默认的情况下,每个文件有一个硬链接,该硬链接会给文件起名字。当创建一个硬链接的时候,也为这个文件创建了一个额外的目录条目。硬链接有两条重要的局限性:


  • 硬链接不能引用自身文件系统之外的文件。也就是说,连接不能引用与该链接不在同一磁盘分区的文件。
    +硬链接无法引用目录

硬链接和文件本身没有什么区别。与包含符号链接的目录列表不同,包含硬链接的目录列表没有特别的链接指示说明。当硬链接被删除时,只是删除了这个链接,但是文件本身的内容依然存在(也就是说,该空间没有释放),除非该文件的所有链接都被删除了。


符号链接

符号链接是为了克服硬链接的局限性而创建的。符号链接是通过创建一个特殊类型的文件来起作用的,改文件包含了指向引用文件或目录的文本指针。就这一单,符号链接与windows系统下的快捷方式非常相似,但是,符号链接要早于windows的快捷方式很多年。
符号链接指向的文件与符号链接自身几乎没有区别。例如,将一些东西写进符号链接里,那么这些东西同样也写进了引用文件。而当删除一个符号链接时,删除的只是符号链接而没有删除文件本身。如果咸鱼符号链接之前删除文件,那么这个链接依然存在,但却不指向任何文件。此时,这个链接就称为坏链接。在很多实现中,ls命令会用不同的颜色来显示坏链接,比如红色,从而显示它们的存在。


推荐阅读
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
author-avatar
尹琢抵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有