在 Linux 下工作,打交道最多的就是文件了,毕竟 Linux 下工作一切皆文件嘛。Linux 也为大家提供了多种用于处理文件的命令,合理使用这些命令可以大大节省你的时间,并让我们的工作负担不再那么沉重。

寻找文件的技巧

当我们查找文件时,第一时间想到的肯定是

我们可以使用 ls 快速找到近期更新的文件。比如,想知道自己昨天离开办公室回家前调用的脚本吗?小case嘛!使用 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

如果我们仅仅想列出今天更新的文件,可以这样操作:

$ 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

如果我们想要查找的文件可能不在当前目录中,那么 find 将比 ls 更加灵活强大。但是,find 命令的输出结果可能会比较多,我们可以使用它的一些选项来过滤掉自己不想要的结果。

比如,在下面的命令中,我们不搜索以点开头的目录(即隐藏目录),指定我们要查找的是文件而不是目录,并要求仅显示最近一天更新过的文件。

命令如下:

$ 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 会递归到子目录中,并将这些子目录中的文件与当前目录中的文件一起计数。

比如,我们想计数一个特定用户(alvin)的主目录中的文件,我们可以先用 find 命令找到文件,再用 wc 命令进行统计。

$ find /home/alvin -type f 2>/dev/null | wc -l

35624

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

必要时,我们可以使用 -maxdepth 1 选项将 find 搜索范围限制在单个目录中,或者也可以将其设置为自己想要搜索的深度:

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

387

文件重命名的技巧

使用

例如,我们想要将当前目录下所有文件的文件名中含有空格的全部更改为下划线,大家可以使用如下命令:

$ rename 's/ /_/g' *

大家应该能想到,此命令行中的 g 代表「全局」。这就意味着该命令会将文件名中的所有空格更改为下划线,而不仅仅是第一个。

如果我们想要把文本的文件删除掉 .txt 扩展名,可以使用如下命令:

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

linux 快速处理文本文件,Linux 下三种高效的文件处理技巧相关推荐

  1. Mac OS 下三种修改Hosts文件的方法

    一.系统偏好设置修改 1.打开系统偏好设置,底部有一个Hosts的快捷入口 2.输入ip和hostname后,回车确定,勾选改host即可 二.终端命令行修改 sudo vi /etc/hosts 1 ...

  2. linux命令echo的实现,Linux echo命令的使用及三种实现方式

    先给大家介绍下linux中echo命令的使用 echo是打印变量的值或者给定的字符串, 比如,输入echo hello或者echo "hello"都是在控制台打印出hello单词 ...

  3. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法

    Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...

  4. linux终端下载notepad,在Linux系统上安装NotePad++的三种方法介绍

    本文介绍在Linux操作系统上安装NotePad++的三种方法,使用Snap.Wine和NotePadQQ.这里要说的是:由于像Wine和Snap软件包这样的工具,在Linux上运行的Notepad+ ...

  5. linux 添加开机启动项的三种方法。

    原文地址: https://blog.csdn.net/lylload/article/details/79488968 Shell环境变量配置文件:https://blog.csdn.net/yzs ...

  6. ​linux 添加开机启动项的三种方法

    linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...

  7. Linux 添加开机启动项的三种方法

    linux 添加开机启动项的三种方法. (1)编辑文件 /etc/rc.local 输入命令:vim /etc/rc.local 将出现类似如下的文本片段: #!/bin/sh # # This sc ...

  8. linux设置开机自启服务,linux设置服务开机自启动的三种方式

    linux设置服务开机自启动的三种方式 这里介绍一下linux开机自动启动的几种方法,共计3种,大家可以借鉴一下!经验里面以centos 5.3系统为例! 方法1:.利用ntsysv命令进行设置,利用 ...

  9. 平板 刷 linux系统,在Linux系统上安装NotePad++的三种方法介绍

    本文介绍在Linux操作系统上安装NotePad++的三种方法,使用Snap.Wine和NotePadQQ.这里要说的是:由于像Wine和Snap软件包这样的工具,在Linux上运行的Notepad+ ...

最新文章

  1. Windows Azure真实案例:GoGrid -托管提供商拓展了服务方案,通过云平台吸引更多客户...
  2. BrowserSync前端同步测试工具
  3. OllyDbg 使用笔记 (十二)
  4. Android 急速发布项目到 JitPack
  5. ElastieSearch安装以及与Mongodb的概念对照关系
  6. Linux常用命令 -- screen
  7. 微软提出第一个端到端的Video Captioning方法:SWIN BERT,涨点显著!
  8. VB讲课笔记03:对象及其操作
  9. 修改数据库表nbsp;字段参考的数据…
  10. 视频教程-DelphiXE10零基础实战快速入门-其他
  11. Android 控件数组
  12. 经典Bug永流传---每周一“虫”(九)
  13. Apache PdfBox 2.0.X 版本解析PDF文档(文字和图片)
  14. 机器视觉学习资料了解
  15. npm模块之opn使用教程(node **.js直接再浏览器中打开相应的文件)
  16. PyDev for Eclipse 简介
  17. 使用swiper实现视频和图片混合轮播
  18. Vue(五)Vue中的网络请求(使用Vue脚手架发送Axios请求)
  19. utorrent开机自启动
  20. 计算机系统管理及控制程序,计算机管理系统控制程序

热门文章

  1. 【百度智能云】基于http3的xcdn 开放直播方案设计与实践
  2. 理想?妄想?区块链的社交工具之梦
  3. 考研:研究生考试(五天学完)之《线性代数与空间解析几何》研究生学霸重点知识点总结之第六课特征值、特征向量及相似矩阵
  4. Axmath实用教程
  5. error Unable to authenticate, need: BASIC realm=“Sonatype Nexus Repository Manager“
  6. 《小说朗读器》新增功能
  7. postgresql测试题_使用BenchmarkSQL测试PostgreSQL
  8. 常用正则表达式——银行卡号,2-6位中文名,手机号
  9. 柯尼卡美能达打印机c226使用说明_UV平板打印机打印光滑瓷器
  10. 2018~2019第二学年17级信管班杨秀璋老师《大数据技术及运用》课堂python代码学习汇总(第二部分)