Linux基础操作4(文件概念,属性及使用)

简介: Linux基础操作4(文件概念,属性及使用)

前面的文章稍微提起过Linux的文件系统,并提到文件挂载的概念,这篇文章,咱们详细的讨论一下Linux的文件系统以及挂载的概念,并介绍一些简单的对文件的操作


1.windows与linux的磁盘区别

我们日常接触使用windows系统较多,知道Windows的磁盘可以分为很多块,有C盘,D盘,E盘等等,各个磁盘之间相互独立,互不干扰,且根据自己的需求来分,很多人喜欢开个D盘来放自己的东西,防止增删时影响到C盘里的系统文件,每一个磁盘都内置有文件系统,使存储的文件信息更加直观的展现给用户看,不然都是一些二进制数,我们是看不懂的

系统的文件信息都被默认放到了C盘里,个人信息被放到了D盘,进入C,D盘里能看到一些文件,文件里可能还有其他文件,画出来就像倒着的树状图一样,称为倒树状结构,最上面的(C:) 与 ( D:) 称为树根。因为C,D互不干扰,分别为两个不同的树根,因此Windows采用的文件结构是多根倒树状结构。

下面我们再聊聊linux的文件结构,不同于windows,linux只有一个树根,即 ' / ' 根目录,其他所有的文件都在这个根目录的下面

那么linux的磁盘空间该如何分配呢,一般会划出一块很大的空间直接给 ' / ',但如果想细分的话,可以指定单独的一块空间给某个目录,那这个目录的数据都会存放到这块单独的空间里,这个目录也被称为挂载点。例如,我们将一大块空间分给' / '之后,再拿出一小块空间,把这一小块空间分配给 '/boot ' ,那么'/boot '就被称为一个挂载点,以后'/boot '里的数据都会存放到这一小块空间里,不会占用' / '的空间。我们外插入一个u盘时,Linux里有专门放u盘数据的文件,插入后,u盘会挂载到这个文件上面,进入这个文件,就能够访问u盘里的数据。


2.Linux的文件目录信息

下面说说Linux的一些常见目录及所包含的信息

/root :管理员的家目录

/home:普通用户的家目录

/etc:系统的配置文件

/var:系统服务的数据

/tmp:系统临时文件目录

/usr/bin:用户命令

/usr/sbin:管理员命令

/boot:系统启动时所需要的文件

/sys:反应系统当前运行状态

文件的命名规则:

除了字符' / ',其他字符都是可以用来命名的,Linux的文件命名是区分大小写的,且文件名的长度不能超过255个字符

文件所在的路径:

绝对路径:以' / '开始的目录,是文件位置的全路径,在任何位置都可以使用

(从根开始一直到要找的文件的路径)一般配置信息时会用到

相对路径:不以' / '开始的目录,只有在特定的位置才能使用


3.Linux对文件及目录进行操作的一些命令

cd:改变目录

cd 后面接上绝对路径或者相对路径,就移动到这个目录下面。输入命令pwd,可以查看当前所在的目录

输入命令 cd ..  会移动到当前目录的上一级目录,直接输入cd 或 cd ~ 会移动到当前用户的主目录,如果在~后面接上用户名,会移动到这个用户的主目录下

输入命令 cd - 能够实现两个热点路径的快速切换

cp:拷贝文件和目录

通过man帮助,我们查到CP的语法格式为:

cp  [option]...  SOURCE  DEST

[option]就是可接的一些选项了,SOURCE是我们要复制的文件或目录,DEST表示要复制到的目的地,SOURCE可以有多个文件,而DEST目的地只能有一个。

上图的操作是把 /home 目录下的 practice 复制到 /root 目录下的 practice-2,因为 practice 和  practice-2 都是文本文件,因此会把 practice -2 中的内容都替换成 practice。如果目的地是一个目录,那么会把这个文件放到目的地目录里,如果目标文件不存在,也就是practice-2 不存在的话,会创建一个practice-2文件,并把practice的内容复制到里面。

mv:移动,重命名文件和目录

语法格式和cp是类似的

上图就是把/home里的 haha 文件移动到 /root 里

mv还有重命名的作用,接上要改名的文件,后面再跟上要改的名字就能完成改名,上图就是我们把haha文件改名为kaka。注意,要改的名字不能和当前文件夹里的文件重名,否则会导致内容覆盖。

创建和删除文件

创建文件使用命令touch,如果要创建的文件已经存在,则更新该文件的时间戳

通过命令stat 可以查看一个文件的时间戳

时间戳:

access time:文件最后一次被访问的时间  (访问时间)

modify time:文件内容最后一次被修改的时间 (修改时间)

change time:文件状态最后一次发生变更的时间  (状态时间)

删除文件命令 rm 即 remove

相关选项:-f 强制删除 ,-r 递归删除,即删除目录里的全部文件,-i交互式,即删除有提示

创建及删除目录

创建目录的命令为 mkdir

要创建多级目录可以使用选项 -p ,-pv可以查看每一级目录被创建的过程。

rmdir只能用来删除空目录,想删除某个目录的话,不能在要删除的目录下使用 rm,这样是识别不到要删除的目录的,要退回上一级目录或者使用绝对路径,非要在要删除的目录下删除该目录的内容,可以在使用rm 时加上 *,代表删除当前目录下的所有内容,但是不包括当前目录

简单来说就是你可以使用rm * 删除当前目录下的所有内容,但是删不掉当前目录,要么退回到上一级目录去删,要么就使用绝对路径

文件属性

命令 file或是 stat 可以查看指定文件的类型属性,文本文件,压缩文件等

文件的压缩

Linux的文件压缩命令有很多,比较常见的是zip 和 tar ,zip是压缩命令,unzip是解压命令,tar是集压缩和解压于一体的命令,通过加不同的选项实现不同的功能

tar -t 不打开压缩文件,直接查看压缩包里的内容, -v 压缩/解压时,显示包里的内容

-C 解压到指定路径

zip  压缩包名  待压缩的文件或目录

如上图,压缩test目录,事实上我犯了一个错误,因为我仅仅只是压缩了目录,并没有压缩目录里的文件,要想连目录里的文件一同压缩,就要加上递归选项 -r

文件的搜索

通过命令 find 来实现文件的搜索,具体的用法大家可以查阅一下,因为这个命名有关的选项还是蛮多的

需要注意的是这个命令不仅会在内存中搜索,还会跑到磁盘中搜索,搜索效果挺好,但是也导致效率并不是很高,大家斟酌使用吧

目录
相关文章
|
5月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
805 13
|
6月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
204 16
|
7月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
238 28
|
6月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
110 4
|
7月前
|
NoSQL Linux 编译器
GDB符号表概念和在Linux下获取符号表的方法
通过掌握这些关于GDB符号表的知识,你可以更好地管理和理解你的程序,希望这些知识可以帮助你更有效地进行调试工作。
340 16
|
7月前
|
Unix Linux
对于Linux的进程概念以及进程状态的理解和解析
现在,我们已经了解了Linux进程的基础知识和进程状态的理解了。这就像我们理解了城市中行人的行走和行为模式!希望这个形象的例子能帮助我们更好地理解这个重要的概念,并在实际应用中发挥作用。
144 20
|
7月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
1021 12
|
6月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename 's/2023/2024/' *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
6月前
|
存储 Linux Shell
Linux进程概念-详细版(二)
在Linux进程概念-详细版(一)中我们解释了什么是进程,以及进程的各种状态,已经对进程有了一定的认识,那么这篇文章将会继续补全上篇文章剩余没有说到的,进程优先级,环境变量,程序地址空间,进程地址空间,以及调度队列。
134 0
|
6月前
|
Linux 调度 C语言
Linux进程概念-详细版(一)
子进程与父进程代码共享,其子进程直接用父进程的代码,其自己本身无代码,所以子进程无法改动代码,平时所说的修改是修改的数据。为什么要创建子进程:为了让其父子进程执行不同的代码块。子进程的数据相对于父进程是会进行写时拷贝(COW)。
185 0