Linux 下三种提高工作效率的文件处理技巧

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

寻找文件的技巧

当我们查找文件时,第一时间想到的肯定是 find 命令。但是如果我们搜索的路径范围比较大时,花费的时间会比较多,在这个情况下 find 命令就不是最优的方式了。

我们可以使用 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
文件重命名的技巧

使用 mv 命令可以很容易地重命名一个文件,但是有时我们想重命名大量文件,并且不想花费大量时间,要怎么操作呢?这个时候 rename 命令就要派上用场了。

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

$ rename 's/ /_/g' *

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

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

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

看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!

  1. 关注原创公众号「良许Linux」,第一时间获取最新Linux干货!
  2. 公众号后台回复【资料】【面试】【简历】获取精选一线大厂面试、自我提升、简历等资料。
  3. 关注我的博客:lxlinux.net

Linux 下三种提高工作效率的文件处理技巧的更多相关文章

  1. 程序员提高工作效率的15个技巧【Facebook】

    程序员提高工作效率的15个技巧[Facebook] 作者: habadog 日期: 2015 年 02 月 13 日发表评论 (0)查看评论 程序员提高工作效率的15个技巧[Facebook] 1,D ...

  2. [No0000191]7种提高工作效率的Vim操作-Vim使用技巧(6)

    Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标 ...

  3. Linux 下三种方式设置环境变量

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

  4. 【环境变量】Linux 下三种方式设置环境变量

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

  5. 【环境变量】Linux 下三种方式设置环境变量与获取环境变量

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

  6. linux下三种服务开机自启的方式

    方式一.二.三适用于ubuntu,centos推荐使用方式二.方式三 方式一 在ubuntu系统中,如果你使用的apt方式安装的软件,可以使用如下方式直接添加服务的开机自启, 如果你是手动解压缩官网下 ...

  7. 用win下的快捷键提高工作效率

    常用的快捷键: WIN+D:显示桌面,再按一次还原桌面: WIN+R:打开运行,输入命令可以执行相应操作,输入路径可以打开对应路径,输入程序名称可以打开对应程序(前提是你打开的是windows下面的程 ...

  8. Linux lvs三种模式工作原理

    LVS:Linux Virtual Sevser,Linux虚拟服务器,由章文嵩先生成立的有关负载均衡的开源项目.基于Linux内核.优化后并发量可以达到百万级. NAT模式: NAT(Network ...

  9. Windows 下有什么软件能够极大地提高工作效率

    Windows 下有什么软件能够极大地提高工作效率?修改 可以推荐一些好的应用或者有趣的程序,能提升工作效率或者能让人眼前一亮的.修改 举报1 条评论 分享 • 邀请回答   按票数排序按时间排序 2 ...

随机推荐

  1. 【JAVA基础】04 Java语言基础:方法

    1. 方法概述和格式说明 为什么要有方法 提高代码的复用性 什么是方法 完成特定功能的代码块. 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {     方法 ...

  2. ip-端口-协议等基本概念

    互联网上的计算机,都会有一个唯一的32位的地址——ip地址.我们访问服务器,就必须通过这个ip地址.   局域网里也有预留的ip地址:192/10/172开头.局域网里的ip地址也是唯一的.   NA ...

  3. Linux中的常用快捷键

    tab 命令或路径补全键,linux里面最有用的快捷键,如果tab不到路径或命令,就代表没有这个路径或者命令,还有可能是权限不对 ctrl+c 终止当前任务命令或程序 ctrl+d 退出当前用户环境, ...

  4. OSChina 清明节乱弹 ——准备好纸巾了看乱弹

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @亚麻仔 :分享 范忆堂 的歌曲<酡颜 (夏热版)> 同一个 ...

  5. Algs4-2.1.17动画-选择排序

    2.1.17动画.修改插入排序和选择排序的代码,使之将数组内容绘制成正文中所示的棒状图.在每一轮排序后重绘图片来产生动画效果,并以一张"有序"的图片作为结束,即所有圆棒均已按照高度 ...

  6. MySQL数据库的套接字文件和pid文件

    MySQL数据库的套接字文件和pid文件 socket文件:当用Unix域套接字方式进行连接时需要的文件. pid文件:MySQL实例的进程ID文件. MySQL表结构文件:用来存放MySQL表结构定 ...

  7. Python开源框架总结

    Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是其全自动化的管理后台: ...

  8. 谷歌OKR指导手册 (译)

    这是一本关于 OKR 迷你小册子,名为<google OKR playbook>,由 www.whatMatters.com 网站发布. 该网站由John Doerr 团队经营, 而Joh ...

  9. spring bootweb综合开发的整理

    1.json接口开发 当前开发中微服务的概念日渐深入人心,所以json数据交互可以带来的便利也不言而喻.在springboot中json数据的返回方式比较简单,只需要用@RestController注 ...

  10. Java——Java是什么一门什么语言

    解释型语言 源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行: 程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次: 解释性语言代表:Python ...