Next: , Previous: , Up: Files   [Contents][Index]


18.11 その他のファイル操作

Emacsには、ファイルを操作する他のコマンドがたくさん存在します。それらはすべて1つのファイルを操作します。ファイル名にワイルドカードは指定できません。

M-x delete-fileはファイルの入力を求め、そのファイルを削除します。1つのディレクトリーにある、複数のファイルを削除する場合、delete-fileよりDiredを使う方が便利でしょう。Dired Deletionを参照してください。

M-x move-file-to-trashは、ファイルをシステムのTrash(またはRecycle Bin)に移動します。この機能は、ほとんどのオペレーティングシステムで利用可能です。Trashに移動されたファイルは、後で気が変わったとき元に戻すことができます。

デフォルトでは、Emacsの削除コマンドはTrashを使いません。一般的な削除コマンドでTrash(それが利用可能な場合)を使うには、変数delete-by-moving-to-trashtに変更します。これはコマンドM-x delete-fileM-x delete-directory (Directoriesを参照してください)、およびDired (Dired Deletionを参照してください)の削除コマンドに影響を与えます。M-x delete-fileおよびM-x delete-directoryにプレフィクス引数を与えると、delete-by-moving-to-trashの値にかかわらず、Trashを使わずに完全に削除します。

ファイルがバージョンコントロール(Version Controlを参照してください)の配下にある時は、M-x delete-fileのかわりにM-x vc-delete-fileを使って、ファイルを削除します。VC Delete/Renameを参照してください。

M-x copy-fileはファイルoldを読み込んで、新しいnewというファイルに同じ内容を書き込みます。

M-x copy-directoryは、シェルコマンドcp -rと同じようにディレクトリーをコピーします。これはディレクトリーoldと、コピー先のnewを読み取ります。newが既存のディレクトリーのとき、このコマンドはoldディレクトリーのコピーを作成して、それをnewの下にコピーします。newが既存のディレクトリーでないとき、このコマンドはoldの内容を、新しいnewという名前のディレクトリーにすべてコピーします。

M-x rename-fileは、ミニバッファーを使って2つのファイル名oldnewを読み取り、ファイルoldnewにリネームします。newという名前のファイルが既に存在するとき、確認にyesと応えなければリネームは行われません。これはリネームにより、newという名前で参照されていた古い内容が失われるからです。oldnewが異なるファイルシステムにある場合、oldがコピーされてから削除されます。引数newがディレクトリー名の場合、実際の新しい名前はそのディレクトリーと、その配下の非ディレクトリーoldになります。たとえばM-x rename-file RET ~/foo RET /tmp RETは、~/foo/tmp/fooにリネームします。このルールはこのセクションの残りのコマンドにも適用されます。新しい名前のファイルがすでに存在する場合は、確認を求めます。

ファイルがバージョンコントロール(Version Controlを参照してください)の配下にある時は、M-x rename-fileのかわりにM-x vc-rename-fileを使ってリネームします。VC Delete/Renameを参照してください。

M-x add-name-to-fileは、既存のファイルの古い名前を削除せずに、新しい名前を追加します。新しい名前は、既存のファイルの“ハードリンク”として作成されます。新しい名前は、そのファイルがあるのと同じファイルシステムになければなりません。MS-Windowsでは、このコマンドはファイルがNTFSファイルシステムにあるときだけ機能します。MS-DOSではファイルをコピーすることにより機能します。

M-x make-symbolic-linkは、2つのファイル名targetlinknameを読み取り、targetを指すlinknameという名前のシンボリックリンクを作成します。これによりlinknameといファイルを開こうとすると、その時点でtargetという名前のファイルを開きます。その時点でtargetという名前のファイルが存在しないときはエラーになります。このコマンドは引数targetを展開しないので、リンクの対象を相対パスで指定できます。MS-Windowsでは、このコマンドはMS Windows Vista以降だけで機能します。

M-x insert-file(C-x iも)は、指定したファイルの内容のコピーを、現在のポイント位置に挿入し、ポイントの位置は変更せずに挿入された内容の前に残します。挿入した内容の後の位置はマークリングに追加され、マークは非アクティブになります(Mark Ringを参照してください)。

M-x insert-file-literallyM-x insert-fileと同様ですが、ファイルは“literally(そのまま)”挿入されます。つまりM-x find-file-literallyコマンド(Visitingを参照してください)と同様に、特別なエンコーディングや変換なしに、ASCII文字の並びとして扱われます。

M-x write-regionM-x insert-fileの逆です。このコマンドはリージョンの内容を、指定されたファイルにコピーします。M-x append-to-fileはリージョンのテキストを、指定されたファイルの末尾に加えます。Accumulating Textを参照してください。変数write-region-inhibit-fsyncの値は、これらのコマンドおよびファイルの保存に影響を与えます。Customize Saveを参照してください。

M-x set-file-modesはファイル名と、その後にファイルモード(file mode)を読み込んで、指定されたファイルにそのファイルモードを適用します。ファイルモード(またはファイルパーミッション(file permissions)とも呼ばれます)は、ファイルが読み込み可能か、書き込み可能か、実行可能か、そしてそれは誰にたいしてなのかを決定します。このコマンドは、chmodコマンドに指定する形式の、シンボルまたは8進のファイルモードを読み取ります。たとえば‘u+x’は、そのファイルを所有するユーザーに実行可能の権限を追加することを意味します。ファイルモードをサポートしないオペレーティングシステムでは、効果はありません。chmodはこの関数の便利なエイリアスです。