find-name-dired を使用して、すべて同じ名前 (foo.txt と呼びます) で異なるディレクトリにあるファイルの複数のインスタンスを検索しています。ファイルパスのアルファベット順にファイルをリストしたい。ただし、それらはランダムな順序で表示されます。dired -sort-menuもdired-sort-chiesaも、find-name-dired の出力をソートしませんが、他の dired バッファー (フォーマットは非常に似ています) では機能します。dired バッファーの内容をファイルに書き込むと、シェルを開いて、9 番目のフィールド (パス) をキーとして使用するシェル内のソート コマンドにファイルを送信できます。これにより、正しいように見える出力が生成されますが、もちろん、それはもはや dired バッファーではありません。
私ができる方法はありますか
- その外部でソートされたファイルを読み込み、それを 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 バッファーがソートされます)、「Cannot sort this dired buffer」というエラーが表示されます。
バッファを次のようにしたい:
/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