我正在使用 find-name-dired 来查找多个具有相同名称(称为 foo.txt)但位于不同目录中的文件实例。我想要按文件路径的字母顺序列出的文件。但是,它们以看似随机的顺序列出。dired-sort-menu和dired-sort-chiesa都不会对 find-name-dired 的输出进行排序,即使它适用于其他 dired 缓冲区(其格式看起来非常相似)。如果我将 dired 缓冲区的内容写入文件,我可以打开 shell 并将文件提交给 shell 中的排序命令,该命令使用第 9 个字段(路径)作为键。这会产生看起来正确的输出,但当然它不再是一个 dired 缓冲区。
有没有办法我可以
- 读入该外部排序的文件并以“模式”(类似于编译模式)打开它,
- 在仍处于 dired 模式时对 find-name-dired 的输出进行排序,或
- 从 find-name-dired 生成输出,从一开始就按照我想要的方式排序?
更新:
只是为了让事情更具体一点,这里是当前缓冲区:
/home/afrankel/Documents/emacs_test/:
find . \( -iname foo.txt \) -exec ls -ld \{\} \;
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 a/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 b/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 d/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/z/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 f/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 e/foo.txt
find finished at Fri Nov 30 17:00:41
按“s”(这将对大多数 dired 缓冲区进行排序)给出错误“无法排序这个 dired 缓冲区”。
我希望缓冲区看起来像这样:
/home/afrankel/Documents/emacs_test/:
find . \( -iname foo.txt \) -exec ls -ld \{\} \;
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 a/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 b/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 c/z/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 d/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 e/foo.txt
-rw-r--r-- 1 afrankel users 4 Nov 30 16:59 f/foo.txt
find finished at Fri Nov 30 17:00:41