Linux文件操作,这些命令可以搞定

使用Linux,如果不使用命令,那是没有灵魂的。

在上一篇中Linux终端命令入坑必备知识与技巧, 小编介绍了终端的基本知识。

那么本文,就来介绍关于文件操作的基本命令。

1 如何查看文件元数据属性(大小,权限等)?

使用ls命令带-l选项,就可以在终端输出中显示文件元数据属性。例如:

输出中的每行都包含与当前目录中存在的文件或子目录相关的元数据信息。此信息可以分为以下七个部分:

文件所有权 + 硬连接个数 + 文件所有者 + 文件所在组 + 文件大小+ 时间 + 名称

在文件所有权中:

第一个字符表示文件类型。例如,在上面显示的行中,d表示这是一个目录。其他值可以是:-:普通文件,s:套接字文件,l:链接文件,以及更多。

接下来的 9 个字符表示权限 r: 读取, w: 写入, x: 执行 -:无权限

第一组三个字符表示所有者的权限,后三个字符表示用户所在组的权限,最后三个字符表示授予的其他人的权限,既不是所有者,也不是文件所属的组部分。在上面显示的示例中,所有者具有读取、写入和执行权限,而组以及其他组都只有读取和执行权限。

提示:使用-h命令行选项以及-l以人类可读格式显示文件大小,如下图,work目录的大小的大小就直观的以4.0显示出来了。

2 如何更改文件的权限?

使用chmod命令就可以更改文件权限。有两种方法可以使用此命令。

第一种方法(也称为字母方法)使用+,-, = 符号来添加、删除和分配权限。字母a、o、u和g分别代表所有(all)、其他人(others)、所有者(user)和组(group)。

例如:

该命令将读取、写入和执行权限分配给文件所有者。同样,chmod o+w test.txt命令为其他用户添加了写入权限

chmod g-r test.txt, 从文件所属的组中删除读取权限

chmod a+x 给所有用户添加执行权限。

指定a不是强制性的,这意味着设置+x或-r等权限而不指定所有者、组或其他权限会自动将其应用于所有权限。

第二种方法是数字方法,它使用4、2和1 代替r、w和x。这些值以 3 组相加,为我们提供一个表示权限的三位数字。

例如:

该命令分别向所有者、组和其他权限授予 rwx、rw 和 r 权限。此处7表示对应于 r、w 和 x 的数字的总和。同样,6表示对应于 r 和 w 的数字的总和,而1表示 x。

3 如何更改文件的时间戳?

使用touch命令更改文件时间戳。与文件关联的时间戳有三种类型:访问时间、修改时间和更改时间。虽然前两个是自解释的,但第三个表示inode信息或与文件相关的元数据上次更改的时间。使用stat命令显示这些时间戳:

要将文件访问时间更改为当前时间,请使用带有-a选项的touch命令:touch -某个文件。同样,-m选项将文件修改时间更改为当前时间。

要将文件时间戳更改为当前时间以外的时间,请使用-t命令行选项。例如,

将documetns.tar的访问时间戳更改为2019/12/12 09:00:01。您还可以以人类可读的形式传递特定的日期和时间。为此,请使用-d命令行选项。下面是一些示例:

4 如何判断一个文件的文件类型?

使用file命令确定文件类型。如下例所示,该命令需要文件名作为参数。您还可以使用通配符 + 代替文件名来显示当前目录中每个文件的文件类型:file *

5 下载了软件,但是为什么无法执行?

在 Linux(和其他 Unix 系统中),文件是否可执行仅取决于其权限,而不是其扩展名或内容。下载文件时,其原始权限是不知道的,因此会获得一组由umask确定的默认权限。

如果用户确实打算执行下载的文件,他们必须使用上面解释的chmod命令显式授予该文件可执行权限。手动授予权限还有助于防止病毒、蠕虫等在您不知情的情况下感染系统。

6 如何显示文件和目录的磁盘占用情况?

使用du命令显示文件和目录的磁盘使用情况。下面是一个示例:

注意- -h命令行选项用于以人类可读格式生成大小。

这里需要注意的一点很重要,du命令输出文件的驻留大小,这可能与ls-l命令显示的实际大小不同。这就类似于Windows下文件的大小,和占有空间

要显示目录的组合大小及其所有子目录,请使用-s选项,而-S可用于显示单独的大小。要显示包含特定文件或目录的文件系统上可用的磁盘空间量,请使用df命令。

7 如何比较两个文件?

使用diff命令可以比较两个文件。该命令检查两个文件,并生成特定格式的输出,以便了解文件匹配所需的更改。该命令需要两个文件名作为参数,如下例所示。

使用diff命令比较这些文件:

上面所示的输出,18,19c18,20意味着两个比较的文件在18,19行被修改了,

并且还增加了第20行。同理 45,46c46就表示右边的文件修改了45和46行,并合并成了一个新行45。

第一个文件的内容用符号标记。

8 如何同时保存和查看命令的输出?

使用tee命令同时将任何其他命令的输出写入标准输出以及一个或多个文件。例如,ls = t t ls-dump命令在控制台上显示ls命令的输出,并将输出存储在文件ls 转储中。

虽然Tee命令主要用于同时捕获和分析日志,但它也可用于加快工作流。例如,

命令一次性将字符串写入两个文件。

9 如何压缩和解压文件?

在Linux上工作需要你处理像.tar,.tar.gz,.bz2等档案文件。要创建和解压缩这些存档文件,可以使用tar命令。

例如:

该命令压缩tset文件夹并创建名为.tar的.tar存档。

-c命令行选项告诉tar命令创建存档。

-v显示添加到 tarball 的文件。

-f指定文件名。

要解压缩上面创建的.tar存档,请使用tar -xvf test.tar命令。

-x命令行选项向命令发出信号以解压存档。此命令解压当前目录中的文件。

使用-C选项指定其他目标目录。

要创建.tar.gz和.tar.bz2存档,请分别添加一个额外的-z和-j命令行选项。解压缩这些存档的命令与用于.tar文件的命令相同。使用-t命令行选项(以及v和f),以防您只想列出存档的内容。

要处理.zip文件,请使用zip命令。

总结

上文中并没有提到怎么通过终端去编辑文档文件,文档编辑可以用哪些命令呢?

本文提到的每个命令都比提到的功能的要强大的多,学习linux的命令除了以需求为驱动外,要想进一步掌握了解命令,则可使用 man命令来学习。

对于linux有哪些文件操作的命名,欢迎在下方留言。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200115A06O8D00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动