【分享】批量删除部分文件名 Dired Vanilla Emacs

文件夹中有许多文件,其名字格式如下。

8ahriuqmndj_ialuoiernmqw.pdf
3dskjfowier_ABC_613.pdf
kdfaiiujn3jd_ABC_summary.pdf

希望改成这样,并且把ABC相关文件打包压缩。

8ahriuqmndj_ialuoiernmqw.pdf
ABC_613.pdf
ABC_summary.pdf

步骤:

  1. 进入dired-mode:C-x C-f 或者C-x d进入相关文件目录
  2. 标记包含“_ABC”的文件:% m, 在minibuffer 输入 _ABC
  3. 用空白替换文件名从开头到第一个下划线的部分: % R, 在minibuffer输入^\w*_ RET RET !
  1. 压缩文件:% m ABC选中所有需要的文件,c ABC.zip
  • 感谢hsingko提供的压缩文件方法👍
  • 小写c在dired-mode中代表dired-do-compress-to
dired-do-compress-to 简介

Compress selected files and directories to an archive.

Prompt for the archive file name.

Choose the archiving command based on the archive file-name extension and ‘dired-compress-files-alist’.

最后得到:

8ahriuqmndj_ialuoiernmqw.pdf
ABC_613.pdf
ABC_summary.pdf
ABC.zip
1 个赞

关于这方面操作的个人心得:

  • 过滤文件这步我喜欢用 dired-narrow ,很直观,不相干的文件都会被隐藏掉(如果已经安装了 consult,那么 consult-focus-lines 也能起到同样的效果)
  • 也可以用 wdired-change-to-wdired-mode 切换到编辑模式修改文件名
  • 在 dired 中直接按 c 就可以压缩选中文件到 zip
2 个赞

压缩不是 Z 吗? C 我这是 Copy

另外,dired-narrow 是哪个包提供的?内置我没找到这命令。

打错了,是小写的 c, Z功能是 compress or uncompress ,如果嵌套压缩的话会有问题。

dired-narrow 来自仓库 GitHub - Fuco1/dired-hacks: Collection of useful dired additions ,有同名包 dired-narrow 可以安装。拿来过滤文件非常好用。

1 个赞

consult-focus-lines 确实好用 :+1: