Linux文件和文件夹操作

前言:

相较于前面背诵的诸多内容,可能现在的部分就需要多多的练习了,难度也慢慢提升。

那就大家一起慢慢努力吧!!!!!

目录

一、Linux目录结构

(一)Windows的目录结构

(二)Linux的目录结构

(三)查看Linux系统磁盘占用情况

(四)文件名和特殊文件名

(五)Linux系统常用目录

二、绝对路径和相对路径

(一)当前目录(工作目录)

(二)绝对路径与相对路径

三、Linux目录常用操作

四、Linux文件常用操作

五、查看文件的内容

六、通配符

七、创建

八、复制

九、移动和重命名

十、硬链接和软链接

十一、which、whereis、find命令查找文件

(一)which命令

(二)whereis命令

(三)find命令

十二、grep命令在文件中查找字符

十三、wc命令统计

十四、du命令查看目录占用的磁盘空间


一、Linux目录结构

(一)Windows的目录结构

Windows的目录结构是多个并列的树状结构

最顶部是不同的磁盘(分区),如C,D,E;

文件路径都是从盘符开始;

Windows文件系统里面都是文件或文件夹;

Windows文件路径是大小写不区分的,层级用 \ 表示。

(二)Linux的目录结构

没有C、D、E盘符,一切从/(根目录)开始,单个的树状结构

(三)查看Linux系统磁盘占用情况

命令:df -Th

(四)文件名和特殊文件名

Linux文件名称:大小写敏感,无专用扩展名             

如:

        /opt/a2018和/opt/A2018是两个文件

        a.txt表示整个文件名称为a.txt,非文本文件

ls命令查看某个目录下有哪些文件和目录(文件夹)

ls

ls -al

Linux特殊文件

  • /   表示根目录
  • .   表示当前目录
  • ..   表示当前目录的父目录
  • .字符串  表示隐藏文件,如“.bash_profile”文件

(五)Linux系统常用目录

  • /                 Linux系统的根目录
  • /etc            系统管理和配置文件
  • /home       用户主目录,比如jack用户的主目录就是/home/jack
  • /boot         Linux系统的内核文件放在该目录下
  • /sbin          系统管理命令,这里存放的是系统管理员使用的管理程序
  • /root          系统管理员root的家目录
  • /bin            常用可执行文件,主要有:catchmodchown  datemvmkdircpbash
  • /dev           设备文件,如/dev/cd0
  • /usr            用户级应用程序和文件几乎都在这个目录下面
  • /proc          一个虚拟文件系统,放置的数据都是在内存当中,例如系统核心、进程信息(process)、设备状态及网络状态等,特点:开机就存在,关机就消失
  • /tmp           公共的临时文件存储点,存放一些临时文件
  • /lib              一些库文件(库是别人写好的现有的,成熟的,可以复  用的代码)

二、绝对路径和相对路径

(一)当前目录(工作目录)

就是我们(Shell)所工作的目录,当用户刚登陆系统时,当前目录是用户的家目录(home目录)

用户家目录是在创建用户的时候会产生,一般是/home/用户名:比如你是tom,家目录一般是/home/tom

当前目录下的所有文件都可以直接访问,假设当前目录下面有个文件file001,要用vi编辑它,就可以直接执行vi file001

查看当前目录命令:pwd

(二)绝对路径与相对路径

绝对路径:开始于根目录,紧跟着目录树的一个个分支,一直到达所期望的目录或文件

相对路径:开始于当前目录,紧跟着目录树的一个个分支,一直到达所期望的目录或文件

“.”(点)和“..”(点点)表示当前目录和父目录

改变当前路径命令:cd

三、Linux目录常用操作

  • cd /home  进入/home目录
  • cd ..  返回上一级目录,如果连续使用该命令,需要使用  cd ../../
  • cd  进入个人用户的家目录
  • cd -  返回上次所在目录
  • pwd  显示当前工作路径
  • mkdir dir1  创建一个叫做dir1的目录
  • rmdir dir1  删除一个dir1目录,必须是空目录才能用这个命名删除

四、Linux文件常用操作

  • ls  查看目录中的文件和文件夹
  • ls -l  显示文件和目录的详细资料
  • ls -a  显示所有文件,包括隐藏文件
  • rm file1  删除一个叫做file1的文件,会给出提示
  • rm -f file1  强制删除一个叫做file1的文件,不提示
  • rm -f file1 file2 file3  强制删除多个文件,不提示
  • rm -rf dir1  强制删除dir1目录并删除其内容

ls的参数

  • ls # 仅列出当前目录可见文件
  • ls -l # 列出当前目录可见文件详细信息
  • ls -hl # 列出详细信息并以可读大小显示文件大小
  • ls -al # 列出所有文件(包括隐藏)的详细信息

rm的参数 

  • -f:强制模式,不提示确认即删除文件或目录。
  • -i:交互模式,删除文件或目录前询问是否确认。
  • -r:递归模式,删除目录及其下所有文件和子目录。
  • -v:详细模式,显示删除的每个文件或目录名。

五、查看文件的内容

cat命令:查看短文件

less命令:查看长文件

  • k  向上一行
  • j  向下一行
  • Page up  向上一页
  • Page down  向下一页
  • q  退出

tail命令:从文件尾部查看文件,常用参数 -f,打印文件的新增内容;tail -n file查看文件的最后n行,比如tail -5 file01表示查看file01的末尾5行。默认显示最后的10行。

head命令:从文件开头查看文件,head -n file查看文件的前n行,比如head -5 file01表示查看file01的前5行。默认显示前10行。

ls命令

  • 不带任何参数:列出当前目录的内容
  • 参数为目录:列出指定目录的内容
  • 加参数-R:递归列出所有子目录的内容
  • 加参数-l:列表形式显示详细信息

ls -l可以用别名ll来表示:

[root@localhost logs]# which ll

alias ll='ls -l --color=auto'        /usr/bin/ls

六、通配符

定义:通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。

七、创建

创建文件命令:vi,touch

vi abc01.txt

touch file01 file02 file03

创建文件也可以使用相对路径和绝对路径

八、复制

复制文件命令:cp 源文件 目标文件

源和目的路径都可以是绝对路径和相对路径

  • cp file01 file02  当前目录复制,源和目标文件名称必须不同
  • cp file01 /home/jim  目标是目录,产生同名文件
  • cp file01 /home/jim/file02  目标是文件,可以改名(相当于另存为)
  • cp file01 file02 /home/jim  源可以是多个文件

如果file02已存在,会被覆盖,除非-i,要求提示

[root@ecs-9b83 charles]# which cp

alias cp='cp -i’

/bin/cp

复制目录

  • cp -r dir01 dir02:当前目录复制,源和目标目录名称必须不同
  • cp -r file01 dir01 /home/jim/dir02:源可以是多个文件、或目录

参数-r或-R都有效

九、移动和重命名

重命名文件、目录:源地址和目的地址相同就是重命名

比如:

  • mv file01 file02  #重命名文件file01为file02
  • mv dir01 dir02  #重命名目录dir01为dir02
  • mv dir01/file01 dir01/file02  #重命名文件file01为file02

移动文件、目录:源地址和目的地址不同,比如:

  • mv file01 dir01/      移动file01到dir01目录
  • mv file01 dir01/file02  移动file01到dir01目录且重命名为file02
  • mv file01 file02 dir01 dir02  移动file01、file02、dir01到dir02
  • mv dir01 dir02  如果dir02不存在,则重命名,如果dir02存在,则移动目录dir01到dir02目录下

十、硬链接和软链接(难)

为什么需要链接?

  • 实现文件的共享使用(原因:不能移动,那个位置也有用)
  • 提供了隐藏文件路径、增加权限安全及节省存储等好处
  • 和复制的区别:文件在磁盘中只有一个拷贝,节省磁盘空间

链接的种类:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。

  • 创建硬链接:ln dog dog-hard
  • 创建软链接:ln -s pig pig-soft

我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。下图展示了程序通过文件名获取文件内容的过程。

查看文件inode命令:stat或ls -i

[root@ecs-9b83 charles]# ls -i file01

1837781 file01

硬链接:若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

软链接(符号链接):若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。类似于Windows的快捷方式

  • 软链接有自己的文件属性及权限等;
  • 可对不存在的文件或目录创建软链接;
  • 软链接可交叉文件系统;
  • 软链接可对文件或目录创建;
  • 创建软链接时,链接计数 i_nlink 不会增加;
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

对源文件的修改,软、硬链接文件内容也一样的修改,因为都是指向同一个文件的内容。

十一、which、whereis、find命令查找文件

(一)which命令

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果;

用法:用来查找可执行文件的位置、显示命令所在路径;

语法:which 系统命令

举例:which grep:查找grep命令的二进制文件路径

(二)whereis命令

whereis 命令则是用来快速查找程序的二进制文件、源代码和man手册文件的路径;

语法:whereis 系统命令

举例:whereis grep

查找那么找到的结果就比which grep命令找到的结果多,因为which命令只会列出二进制文件路径,而whereis命令会把grep的二进制文件、源代码、帮助手册都返回。

(三)find命令

find命令会在指定目录及其子目录下查找查找符合条件的特定文件,当我们忘记文档路径时,可以使用该命令

语法:find 目录名 条件

举例:

find /home/tom -name test.sh

find / -name test.sh

常用条件

  • -name 名称:  指定要被查找的文件或目录名称,可用通配符
  • -type 类型:  以文件类型作为查找条件,文件类型如下:d--目录(directory),f--文件  (file)
  • -atime -5:  5天内访问的文件
  • -atime +5:  5天前访问的文件
  • -amin -5:  5分钟内访问的文件
  • -amin +5:  5分钟前访问的文件

例如:

  • find  /temp  -name “abc”  #在/temp目录下查找名称为abc的文件和文件夹
  • find  /temp  -name “abc*”  #在/temp目录下查找名称以abc开头的文件和文件夹
  • find  /temp  -name “abc*” -type f  #在/temp目录下查找名称以abc开头的文件

十二、grep命令在文件中查找字符

grep命令

一种强大的文本搜索工具,并把匹配的行打印出来

啥时候用?

  • 查看日志
  • 查看命令输出

命令格式:grep 关键字 文件,比如:grep root /var/log/message

默认大小写敏感

支持正则表达式

举例:

  • grep “test123” d* :显示以d开头的文件中包含test123的行
  • grep “test” file01 file02 file03:显示file01、file02、file03中包含test的行
  • grep “root” -r /var/log:在/var/log所有子目录文件中搜索包含字符串root的行
  • grep “^test” /var/log/message:在/var/log/message文件中搜索以字符串test开头的行
  • grep “test$” /var/log/message:在/var/log/message文件中搜索以字符串test结尾的行

常用参数

  • -c:只输出匹配行的行数(有多少行匹配)
  • -i: 不区分大小写
  • -n:只显示匹配行及行号
  • -v:显示不含匹配文本的所有行
  • -F:指明pattern非正则表达式

十三、wc命令统计

wc -l /etc/passwd:统计/etc/passwd文件有多少行

wc -c /etc/passwd:统计/etc/passwd文件有多少个字节

带着管道符使用:ps -ef |wc -l

十四、du命令查看目录占用的磁盘空间

du命令是查看文件或目录的磁盘使用空间,即占用磁盘大小;

df命令是查看文件系统的磁盘使用情况,比如总空间多大、使用了多少,可用空间多少、使用率等信息;

语法:du -sh 文件名或者目录名

举例:

[root@ecs-9b83 charles]# du -ah /var/charles/

0         /var/charles/dir03/dir02/file01-softlink

4.0K    /var/charles/dir03/dir02/dir01

4.0K    /var/charles/dir03/dir02/file02

4.0K    /var/charles/dir03/dir02/file01

4.0K    /var/charles/dir03/dir02/file04

20K     /var/charles/dir03/dir02

24K     /var/charles/dir03

4.0K    /var/charles/dir04/dir01

4.0K    /var/charles/dir04/file02

4.0K    /var/charles/dir04/file01

4.0K    /var/charles/dir04/file04

20K     /var/charles/dir04

48K     /var/charles/

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

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

相关文章

2024年AI辅助研发趋势深度分析

2024 年 AI 辅助研发趋势 随着人工智能技术的持续发展与突破,2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计,从软件开发到材料科学,AI正逐渐渗透到研发的各个环节,变革着传统的研发模式。在这一背景下&a…

果蔬作物疾病防治系统|基于Springboot的果蔬作物疾病防治系统设计与实现(源码+数据库+文档)

果蔬作物疾病防治系统目录 目录 基于Springboot的果蔬作物疾病防治系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、果蔬百科列表 2、公告信息管理 3、公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

最简单的基于 FFmpeg 的内存读写的例子:内存转码器

最简单的基于 FFmpeg 的内存读写的例子:内存转码器 最简单的基于 FFmpeg 的内存读写的例子:内存转码器正文源程序结果工程文件下载参考链接 最简单的基于 FFmpeg 的内存读写的例子:内存转码器 参考雷霄骅博士的文章,链接&#xf…

利用华为CodeArts持续交付项目演示流程

软件开发生产线(CodeArts)是面向开发者提供的一站式云端平台,即开即用,随时随地在云端交付软件全生命周期,覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布,打通软件交付的完整路径&#xf…

C语言:通讯录(纯代码)

目录 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; test.c代码&#xff1a; contact.c代码&#xff1a; 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; #pragma once#include <string.h> #includ…

GTH手册学习注解

CPLL的动态配置 终于看到有这个复位功能了 QPLL SWITCHing需要复位 器件级RESET没发现有管脚引出来 两种复位方式&#xff0c;对应全复位和器件级复位 对应的复位功能管脚 改那个2分频的寄存器说明段&#xff0c;复位是自动发生的&#xff1f;说明可能起效了&#xff0c;但是分…

STM32---通用定时器(二)相关实验

写在前面&#xff1a;前面我们学习了基本定时器、通用定时器的相关理论部分&#xff0c;了解到通用定时器的结构框图&#xff0c;总共包含六大模块&#xff1a;时钟源、控制器、时基单元、输入捕获、公共部分以及输出捕获。对相关模块的使用也做详细的讲解。本节我们主要是对上…

【NR 定位】3GPP NR Positioning 5G定位标准解读(八)- OTDOA定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

少儿编程 蓝桥杯青少组科技素养题 信息素养真题及解析第25套

少儿编程 科技素养 信息素养真题第25套 1、旅行结束之后&#xff0c;回到家的小蓝决定将照片备份在云端的网盘上。备份照片主要占用的是小蓝家的( )带宽 A、下行 B、上行 C、文件 D、数据 答案&#xff1a;B 考点分析&#xff1a;主要考查网络相关知识&#xff0c;要将照…

多种方法求解数组排序

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

基于GAN对抗网进行图像修复

一、简介 使用PyTorch实现的生成对抗网络&#xff08;GAN&#xff09;模型&#xff0c;包括编码器&#xff08;Encoder&#xff09;、解码器&#xff08;Decoder&#xff09;、生成器&#xff08;ResnetGenerator&#xff09;和判别器&#xff08;Discriminator&#xff09;。…

CSS中有哪些方式可以隐藏页面元素(区别详解)

文章目录 一、前言二、实现方式display:nonevisibility:hiddenopacity:0设置height、width属性为0position:absoluteclip-path小结 三、区别参考文献 一、前言 在平常的样式排版中&#xff0c;我们经常遇到将某个模块隐藏的场景 通过css隐藏元素的方法有很多种&#xff0c;它…

HttpURLConnection详解及使用

HttpURLConnection 请求响应流程 设置连接参数的方法 setAllowUserInteractionsetDoInputsetDoOutputsetIfModifiedSincesetUseCachessetDefaultAllowUserInteractionsetDefaultUseCaches 发送URL请求 建立实际连接之后&#xff0c;就是发送请求&#xff0c;把请求参数传到…

探讨系统测试的最佳实践与思维模式!

这是测试活动过程详解系列的最后一篇文章。之前的想法&#xff0c;是对测试过程各重要环节进行拆解&#xff0c;然后介绍这个环节重点要做的事情&#xff0c;为什么要做这些事&#xff0c;以及注意事项。 前面几篇文章分别介绍了单元测试、集成测试、回归测试阶段要解决的问题…

初识C语言—初识C语言

前言 C语言全面了解&#xff0c;全貌认识 细致的学习&#xff0c;细枝末节 什么是C语言 维基百科 C 语言是一种通用的高级语言&#xff0c;最初是由丹尼斯里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。 在 1978 …

【QT+QGIS跨平台编译】之七十六:【QGIS_Native+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、QGIS_Native介绍二、QGIS下载三、文件分析四、pro文件五、编译实践一、QGIS_Native介绍 QGIS_Native模块是QGIS软件的核心部分,提供了许多基本功能和核心组件,主要用于处理与底层操作系统的关系。 二、QGIS下载 QGIS网址: QGIS Source Download 三、文件分析…

苹果cms模板保护设置,防止被扒

苹果cms模板保护设置&#xff0c;防止被扒 如今互联网时代&#xff0c;网站模板前端被扒是常有的事&#xff0c;如何防止模板数据被扒&#xff1f; 保护设置方法&#xff1a; 登录宝塔 找到安装模板的网站 设置禁止访问文件 方法参考截图后缀填&#xff1a;php|html 目录填&a…

抽象的java发送邮箱2.0版本

优化了更多细节 SpringBoot3&#xff1a;前置框架 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><dependency><groupId>org.springframewo…

Linux系统架构----nginx上构建虚拟主机

Linux系统架构----nginx上构建虚拟主机 一、构建虚拟主机概述 利用虚拟主机&#xff0c;不用为每个运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程&#xff0c;虚拟主机提供了在同一台服务器、同一组Nginx进程上运行的多个网站的功能与Apache相同&#xff0c;N…

【OpenCV】如何在Linux操作系统下正确安装 OpenCV

前言 我是在虚拟机上跑的 Linux 5.8.0-44-generic。 配置如下&#xff1a; 目录 第一步&#xff1a;下载依赖文件 第二步&#xff1a;下载 opencv 和 opencv_contrib 源码 第三步&#xff1a;解压缩包 第四步&#xff1a;移动文件 第五步&#xff1a;生成 makefile 文件 …