特定の正規表現に適合する名前を持つすべてのファイルをディレクトリツリーで再帰的に単一のdiredバッファーに移動するにはどうすればよいですか?
それで、一度にそれらの名前を変更/削除できますか?
find-dired+.el
は、コマンドの拡張バージョンを提供しますfind-name-dired
。(1)最小と最大の検索深度と(2)検索から除外するパスを指定するオプションの引数を受け入れます。
特定の正規表現に適合する名前を持つすべてのファイルをディレクトリツリーで再帰的に単一のdiredバッファーに移動するにはどうすればよいですか?
それで、一度にそれらの名前を変更/削除できますか?
find-dired+.el
は、コマンドの拡張バージョンを提供しますfind-name-dired
。(1)最小と最大の検索深度と(2)検索から除外するパスを指定するオプションの引数を受け入れます。
回答:
使用する
M-x find-name-dired
ワイルドカードに従ってファイルを取得します。
ディレクトリ「〜/ org /」でサフィックス「org」が付いたすべてのファイルを検索します。次のように入力します
M-x find-name-dired
~/org
*org
そしてお楽しみください。
使用する
M-x find-dired
正規表現に従ってファイルを取得するための適切な引数を使用します。
ディレクトリ「〜/ org /」でサフィックス「org」が付いたすべてのファイルを検索します。次のように入力します
M-x find-dired
~/org
-regex ".*org$"
そしてお楽しみください。
*org
それを手動で入力せずに
my-find-orgfiles ()
「トン」と「Q」//選択がすべてと適用されることに続いて?@Marco Wahl
正規表現を使用するには、も試してみてくださいfind-lisp-find-dired
。このコマンドは標準libに属しています。find-lisp。完全にelispで記述されています。つまり、外部find
プログラムをインストールする必要はありません
。
たとえば、次の例では、ディレクトリ〜/ lispの下にある拡張子「.el」のすべてのファイルを示しています。
M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET
(試合の栄誉case-fold-search
)。
次のEmacsリリース(v26.1)以降、Diredはファイル名引数のディレクトリ部分でワイルドカードをサポートすることに注意してください。つまり、次の作品:
C-x d ~/soft/*/*.c RET
(一致では大文字と小文字が区別されます)。
このコマンドは、Diredバッファーで、拡張子「.c」、「〜/ soft」の下に2つの深度レベルを持つすべてのファイルを表示します。つまり、「〜/ soft / foo / bar.c」のようなすべてのファイル がリストされますが、「〜/ soft / qux.c」 や「〜/ soft / foo / baz / qux.c」のようなファイルはリストされません。
同じですが、大文字と小文字は区別されません。
C-x d ~/soft/*/*.[cC] RET
elisp、 'ls-lisp'、または 'eshell-ls'に実装された 'ls'でDiredを実行している場合、次の構文でワイルドカードに一致するすべてのファイルを再帰的にリストできます。
C-x d ~/soft/**/*.c RET
「**」に注意してください。この場合、ワイルドカードと一致する「〜/ soft」の下のすべてのファイルが表示されます。「〜/ soft / qux.c」も含まれます。
ただし、insert-directory-program
ワイルドカード拡張を使用している場合は、システムシェルによって展開されます。つまり、この再帰的な「**」構文は、シェルでサポートされている場合にのみ機能します。たとえば、zshはサポートしていますが、bashはサポートしていません。zsh以外のシェルでは、前のコマンドは次のように実行されます。
C-x d ~/soft/*/*.c RET