美文网首页我用 LinuxLinux学习|Gentoo/Arch/FreeBSDLinuxHowto
Linux系统中常用3个使用命令处理文件的技巧

Linux系统中常用3个使用命令处理文件的技巧

作者: 等会再说 | 来源:发表于2019-10-11 12:31 被阅读0次
Linux系统中常用3个使用命令处理文件的技巧

Linux系统中文件处理是不可避免的事情,经常会碰到查找文件,文件计数,重命名文件的操作。本文将向你展示在Linux系统中常用于处理这三种情况的命令操作。

Linux 的一大特点就是强大的命令,Linux 提供了多种用于处理文件的命令,这些命令可以节省你的时间,并提高你的工作效率,让你的工作变得简单。

查找文件

我们查找文件时,find 可能会是第一个想到的命令,但有时候一些场景使用 ls 命令会更好。例如,想知道你昨天离开办公室回家前调用的脚本么?可以使用 ls 命令并加上 -ltr 选项。执行结果中最后一个列出的将是最近创建或更新的文件。

$ ls -ltr ~/bin | tail -3
-rwx------ 1 shs shs   229 Sep 22 19:37 checkCPU
-rwx------ 1 shs shs   285 Sep 22 19:37 ff
-rwxrw-r-- 1 shs shs  1629 Sep 22 19:37 test2

这其中,|为管道符,tail -3为对输出的结果过滤列出倒数后3项记录。

下面的示例命令将仅列出今天更新的文件:

$ ls -al --time-style=+%D | grep `date +%D`
drwxr-xr-x  60 shs  shs       69632 09/23/19 .
drwxrwxr-x   2 shs  shs     8052736 09/23/19 bin
-rw-rw-r--   1 shs  shs         506 09/23/19 stats

当然上面ls命令的执行往往是基于在已知目录情况下。如果你要查找的文件可能不在当前目录中,那么 find 将比 ls 提供更好的选项,但它可能会输出比你想要的更多结果。在下面的命令中,我们不搜索以点开头的目录(它们很多一直在更新),指定我们要查找的是文件(即不是目录),并要求仅显示最近一天 (-mtime -1)更新过的文件。

$ find . -not -path '*/\.*' -type f -mtime -1 -ls
   917517      0 -rwxrw-r--   1 shs      shs          683 Sep 23 11:00 ./newscript

注意 -not 选项反转了 -path 的行为,因此我们不会搜索以点开头的子目录。

如果只想查找最大的文件和目录,那么可以使用类似 du 这样的命令,它会按大小列出当前目录的内容。将输出通过管道传输到 tail,仅查看最大的几个。

$ du -kx | egrep -v "\./.+/" | sort -n | tail -5
918984      ./reports
1053980     ./notes
1217932     ./.cache
31470204    ./photos
39771212    .

-k 选项让 du 以块列出文件大小,而 x 可防止其遍历其他文件系统上的目录(例如,通过符号链接引用)。事实上,du 会先列出文件大小,这样可以按照大小排序(sort -n)

文件计数

使用 find 命令可以很容易地计数任何特定目录中的文件。你只需要记住,find 会递归到子目录中,并将这些子目录中的文件与当前目录中的文件一起计数。在此命令中,我们计数一个特定用户(username)的家目录中的文件。根据家目录的权限,这可能需要使用 sudo。请记住,第一个参数是搜索的起点。这里指定的是用户的家目录。

$ find ~username -type f 2>/dev/null | wc -l
35624

请注意,我们正在将上面 find 命令的错误输出发送到 /dev/null,以避免搜索类似 ~username/.cache 这类无法搜索并且对它的内容也不感兴趣的文件夹。

必要时,你可以使用 maxdepth 1 选项将 find 限制在单个目录中:

$ find /home/shs -maxdepth 1 -type f | wc -l
387

重命名文件

使用 mv 命令可以很容易地重命名文件,但是有时你会想重命名大量文件,并且不想花费大量时间。例如,要将你在当前目录的文件名中找到的所有空格更改为下划线,你可以使用如下命令:

$ rename 's/ /_/g' *

如你怀疑的那样,此命令中的 g 表示“全局”。这意味着该命令会将文件名中的所有空格更改为下划线,而不仅仅是第一个。

要从文本文件中删除.txt 扩展名,可以使用如下命令:

$ rename 's/.txt//g' *

写在最后

Linux 命令行提供了许多用于处理文件的有用选择。如果你有更好的处理方法,不妨在下面留言一起讨论。

相关文章

  • Linux 文件基本属性

    处理目录的常用命令 接下来我们就来看几个常见的处理目录的命令吧: Linux 文件内容查看 Linux系统中使用以...

  • Linux常用命令

    本文收录了Linux系统中的常用命令,便于自己查阅,会不定期更新哈。 文件系统 处理文件 处理目录 查看文件内容 ...

  • Linux 命令学习记录

    记录使用过的Linux命令,学习备忘(持续学习更新中)。 登录Linux系统 注意:命令后方要加个空格 常用的文件...

  • Linux之常用文件操作命令

    前言 继Linux命令基础 后.记录整理了Linux较为常用的处理文件目录的命令. 文件处理命令 Linux 下一...

  • 【Linux入门第八天】-Linux常用基础命令全解

    04_Linux常用基础命令全解 常用命令: Linux文件系统:1、文件名严格区分字符大小写;2、文件可以使用除...

  • Linux系统命令——帮助命令、文件权限命令

    这篇文章我们学习Linux常用命令——帮助命令、文件权限命令。 在Linux系统中,一切皆文件,这些文件有不同的使...

  • Linux常用的一些命令,看你知道多少?

    Linux中命令有很多,而Linux系统中使用命令也是它的一大特点。在Linux系统中使用命令处理问题灵活,高效,...

  • Linux | 常用命令(一)

    整理了一下linux常用命令,方便大家使用和学习。 一.文件处理命令 1.命令格式与目录处理命令 2.目录处理命令...

  • 每天五分钟学习Linux(02) 常用命令

    持续更新 1.Linux 常用文件处理命令 通常Linux命令格式 1.1 查询目录中的内容:ls 1.2 mkd...

  • linux学习笔记

    linux学习笔记 1,常用命令及linux文件结构、网络配置和安全关机等 1,文件系统中bin是常用命令目录、s...

网友评论

    本文标题:Linux系统中常用3个使用命令处理文件的技巧

    本文链接:https://www.haomeiwen.com/subject/ldytmctx.html