GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Operating-on-Files.html ・ emacs-doc.conao3.com

32.7 ファイルの操作

本節では、1つのファイルまたは複数のファイルを操作するためのDiredの基本コマンドについて説明します。これらのコマンドの多くは大文字で表記されており、いずれも実行前に、引数の読み取りや確認を求めるためにミニバッファを使用します。また、いずれのコマンドでも、以下のような方法で操作対象のファイルを指定できます。

!や‘%’コマンドなど、その他の一部のDiredコマンドでも、どのファイルを操作するかを決定するために同様の規約が用いられています。

ここで説明するDiredコマンドに加えて、Diredバッファに表示されている1つ以上のファイルに対してバージョン管理(VC)コマンドを実行することもできます。バージョン管理を参照してください。

ファイルのコピーやリネーム、あるいはリンクの作成など、宛先ディレクトリを指定するコマンドは、その操作のデフォルトの対象ディレクトリを推測しようとします。通常はDiredバッファのデフォルトディレクトリが候補となりますが、オプション dired-dwim-target が nil 以外であり、かついずれかのウィンドウに別のDiredバッファが表示されている場合は、代わりにそのバッファのディレクトリが候補となります。dired-dwim-target をカスタマイズすることで、次にDiredバッファがあるウィンドウ、直近で使用したDiredバッファのあるウィンドウ、あるいはその他の任意の関数を優先させることができます。値が関数である場合、その関数は引数なしで呼び出され、デフォルト(すなわちデフォルトの対象および「future history」)として使用されるディレクトリのリストを返すことが期待されます。

ファイルを操作するDiredのファイル操作コマンドは以下の通りです。

C new RET

指定したファイル (dired-do-copy) をコピーします。引数 new はコピー先のディレクトリ、または(単一のファイルをコピーする場合)新しいファイル名です。これはシェルコマンド cp と同様です。

オプション dired-create-destination-dirs は、ファイルのコピーやリネーム時に、Dired がコピー先に存在しないディレクトリを作成するかどうかを制御します。デフォルト値の nil は、Dired がそのような不足しているディレクトリを一切作成しないことを意味します。値 always は、Dired が自動的に作成することを意味し、値 ask は、作成前に確認を求めることを意味します。

オプション dired-create-destination-dirs-on-trailing-dirsep が dired-create-destination-dirs に加えて nil 以外である場合、コピー先ディレクトリの末尾にあるディレクトリ区切り文字は特別な扱いを受けます。この場合、‘test/’ にコピーする際にディレクトリ ‘test’ が既に存在しないときは、そのディレクトリが作成され、指定されたソースファイルまたはディレクトリが新規作成されたディレクトリにコピーされます。

dired-copy-preserve-time が nil でない場合、このコマンドでコピーすると、‘cp -p’ のように、コピー先ファイルに元のファイルの更新日時が保持されます。

変数 dired-recursive-copies は、ディレクトリを再帰的にコピーするかどうか(‘cp -r’ のように)を制御します。デフォルトは top で、これはディレクトリを再帰的にコピーする前に確認を行うことを意味します。

変数 dired-copy-dereference は、シンボリックリンクをリンクとしてコピーするか、参照解除した後にコピーするか(‘cp -L’ のように)を制御します。デフォルトは nil で、これはシンボリックリンクを新規に作成してコピーすることを意味します。

dired-keep-marker-copy ユーザーオプションは、このコマンドによるファイルマーキングの処理方法を制御します。デフォルトでは、ファイルのすべての新規コピーに ‘C’ マークが付与されます。

D

指定したファイル (dired-do-delete) を削除します。これはシェルコマンド rm と同様です。

本セクションの他のコマンドと同様に、このコマンドはマーク済みファイル、または次のn個のファイルに対して動作します。これに対し、x (dired-do-flagged-delete) はフラグ付きファイルをすべて削除します。

E

外部プログラム(dired-do-open)を使用して、指定されたファイルを「開く」。プログラムは、変数shell-command-guess-openで決定されるシステムの規約に従って選択される。

R new RET

指定したファイル (dired-do-rename) の名前を変更します。単一のファイルの名前を変更する場合、引数 new はそのファイルの新しい名前になります。複数のファイルの名前を変更する場合、引数 new はファイルを移動先のディレクトリになります(これはシェルコマンド mv と同様です)。

オプション dired-create-destination-dirs は、Dired が new に存在しないディレクトリを作成するかどうかを制御します。

オプション dired-create-destination-dirs-on-trailing-dirsep を dired-create-destination-dirs に加えて指定した場合、転送先における末尾のディレクトリ区切り文字を特別に扱うかどうかが制御されます。この場合、ディレクトリ ‘old’ を ‘new/’ にリネームする際に、ディレクトリ ‘new’ が既に存在しない場合は、それが作成され、‘old’ が新規作成されたディレクトリに移動されます。そうでない場合は、‘old’ が ‘new’ にリネームされます。

Diredは、ファイル名が変更されたファイルに関連付けられたバッファの参照ファイル名を、新しいファイル名を指すように自動的に変更します。

変数 dired-vc-rename-file の値が nil 以外の場合、基盤となる VCS のコマンドを用いて、vc-rename-file 経由でファイルがリネームされます(バージョン管理対象ファイルの削除とリネーム を参照)。

H new RET

指定したファイルへのハードリンクを作成します (dired-do-hardlink)。これはシェルコマンド ln に相当します。引数 new は、リンクを作成するディレクトリ、または(リンクを1つだけ作成する場合)リンクに付ける名前です。

S new RET

指定したファイル(dired-do-symlink)へのシンボリックリンクを作成します。これは‘ln -s’と同様です。引数newは、リンクを作成するディレクトリ、または(リンクを1つだけ作成する場合)リンクに付ける名前を指定します。

Y new RET

指定したファイルへの相対シンボリックリンクを作成します (dired-do-relsymlink)。引数 new は、リンクを作成するディレクトリ、または(リンクを1つだけ作成する場合)リンクに付ける名前です。これは dired-do-symlink と同様ですが、相対シンボリックリンクを作成します。例えば:

    foo -> ../bar/foo

次のような絶対的なものは生成しません:

    foo -> /path/that/may/change/any/day/bar/foo
M modespec RET

指定したファイル (dired-do-chmod) のモード(パーミッションビットとも呼ばれます)を変更します。modespec は、chmod プログラムで処理される引数と同様に、8進数表記またはシンボリック表記で指定できます。このコマンドはシンボリックリンクを辿りません。そのため、そのようなモードが変更不能なプラットフォームでシンボリックリンクのモードを変更しようとすると、エラーが報告されます。

G newgroup RET

指定したファイルのグループを newgroup (dired-do-chgrp) に変更します。

O newowner RET

指定したファイルの所有者を newowner (dired-do-chown) に変更します。(ほとんどのシステムでは、スーパーユーザーのみがこの操作を実行できます。)

変数 dired-chown-program は、処理に使用するプログラム名を指定します。(システムによって chown の配置場所が異なるため、この変数が必要になります)。

T timestamp RET

指定したファイル (dired-do-touch) を操作します。これは、それらの更新日時を timestamp(デフォルトは現在時刻)に更新することを意味します。これはシェルコマンドの touch に相当します。

P command RET

指定したファイル (dired-do-print) を印刷します。印刷に使用するコマンドを指定する必要がありますが、ミニバッファには変数 lpr-command と lpr-switches(lpr-buffer が使用するのと同じ変数です。ハードコピーの印刷 を参照)を用いた適切な推測値があらかじめ設定されています。

Z

指定したファイル (dired-do-compress) を圧縮します。ファイルが既に圧縮されていると思われる場合は、代わりに解凍します。マークされた各ファイルは個別のアーカイブに圧縮されます。その際、gzip プログラムが利用可能であればそれを使用し、そうでない場合は compress を使用します。

ディレクトリ名を指定すると、このコマンドはdired-compress-directory-default-suffixユーザーオプションに応じて圧縮アーカイブを作成します。デフォルトでは、tarコマンドを実行し、その出力をgzipにパイプすることで、ディレクトリ内のすべてのファイルを含む.tar.gzアーカイブが作成されます。圧縮ディレクトリの展開を可能にするため、.tar.gzまたは.tgzアーカイブファイルに対してZと入力すると、アーカイブ内のすべてのファイルが、アーカイブ名から拡張子を除いた名前のディレクトリに展開されます。

c

指定したファイル (dired-do-compress-to) を、ファイルシステム上の任意の場所に単一のアーカイブとして圧縮します。デフォルトのアーカイブは、ユーザーオプション dired-compress-directory-default-suffix で制御されます。dired-compress-files-alist も参照してください。

C-x v v
C-x v = (Dired)
C-x v l (Dired)

If the directory you are visiting is under version control (see Version Control), then the normal VC commands will operate on the selected files. For example, C-x v v invokes dired-vc-next-action, which does the same as vc-next-action in a buffer visiting a file under version control (see Basic Editing under Version Control). Similarly, C-x v = shows the diffs between the marked files and their committed versions, and C-x v l shows the VC change history for the marked files.

:d

指定したファイル (epa-dired-do-decrypt) を復号します。EasyPG Assistant User’s Manual の Dired integration を参照してください。

:v

指定したファイル(epa-dired-do-verify)のデジタル署名を検証します。EasyPG Assistant User’s ManualのDired連携を参照してください。

:s

指定したファイル (epa-dired-do-sign) にデジタル署名を行います。EasyPG Assistant User’s Manual の Dired integration を参照してください。

:e

指定したファイル (epa-dired-do-encrypt) を暗号化します。EasyPG Assistant User’s Manual の Dired integration を参照してください。

L

指定したEmacs Lispファイル(dired-do-load)を読み込みます。Emacs用Lispコードライブラリを参照してください。

B

指定したEmacs Lispファイル(dired-do-byte-compile)をバイトコンパイルします。The Emacs Lisp Reference ManualのByte Compilationを参照してください。

I

このファイル(Info形式のファイルと想定)のInfoを実行する。

N

このファイル(nroff形式のファイルと想定)を実行してください。

A regexp RET

指定されたすべてのファイルから、正規表現 regexp (dired-do-find-regexp) を検索します。

このコマンドは xref-find-references のバリエーションであり(識別子による検索と置換 を参照)、*xref* バッファを表示します。ここでは、*xref* バッファで使用可能なコマンド に記載されているコマンドを使用して、マッチ箇所間を移動したり、必要に応じて表示したりできます。

マークされたファイルのいずれかがディレクトリである場合、このコマンドは、ファイル名が grep-find-ignored-files に一致するものと、サブディレクトリ名が grep-find-ignored-directories に一致するものを除き、それらのディレクトリおよびサブディレクトリ内のすべてのファイルを再帰的に検索します。

Q regexp RET to RET

指定された各ファイルに対して query-replace-regexp を実行し、regexp に一致する箇所を文字列 to (dired-do-find-regexp-and-replace) に置換します。

このコマンドは xref-query-replace-in-results のバリエーションです。regexp のすべての一致箇所を一覧表示する *xref* バッファを提示し、そのバッファ内で特殊コマンドを使用できます(*xref* バッファで使用可能なコマンド を参照)。特に、クエリ置換ループを抜けた後、そのバッファ内で r を使用してさらに多くの一致箇所を置換できます。識別子による検索と置換 を参照してください。

dired-do-find-regexp の場合と同様に、マークされたファイルのいずれかがディレクトリである場合、このコマンドは、ファイル名が grep-find-ignored-files に一致し、かつサブディレクトリ名が grep-find-ignored-directories に一致するファイルおよびサブディレクトリを除き、それらのディレクトリ内のすべてのファイル、およびそのサブディレクトリに対して、再帰的に置換を行います。