← XeFM English | 日本語 · crftwr/xefm on GitHub · craftware

ファイル操作

English | 日本語

XeFM の基本的なファイル操作であるコピー、移動、複製、リネームは、どれも同じ競合の処理と進捗表示を使います。このドキュメントでは、それぞれの動作と、設定できるオプションを説明します。

これらの操作のキーはキーマッププリセットによって異なります。キーマッププリセットを参照するか、XeFM で F1 を押して、いま使えるキーを確認してください。

コピー

選択したファイルを反対側のペインにコピーします。

  1. 1 つ以上の項目を選択します(toggle_select_down で 1 つずつ選択を切り替え、toggle_select_files ですべてのファイルを選択)。
  2. File → Copy to Other Pane(反対側のペインへコピー、copy_files)を選びます。
  3. 確認を求められたら、コピー先を確認します。

ディレクトリは再帰的にコピーされます。コピー先に同じ名前がすでにある場合は、どう解決するかを XeFM が尋ねます(競合の解決を参照)。

XeFM は既定でコピーの前に確認します。確認を省くには次のようにします。

CONFIRM_COPY = False   # default: True

移動

選択したファイルを反対側のペインに移動します。

  1. 1 つ以上の項目を選択します。
  2. File → Move to Other Pane(反対側のペインへ移動、move_files)を選びます。
  3. 確認を求められたら、移動先を確認します。

(AFX style では move_files と create_directory が 1 つのキーを共有していて、何も選択していない場合は代わりに新しいディレクトリの名前を尋ねます。作成の操作を参照してください。)

XeFM は既定で移動の前に確認します。

CONFIRM_MOVE = False   # default: True

ディスクやストレージの種類をまたいだ移動

移動は、移動元と移動先が同じディスクにあっても、別々のディスクにあっても、Amazon S3 のようなクラウドストレージにあっても、同じように動作します。

元のファイルは検証済みのコピーができてからしか削除されないので、ディスクやストレージをまたいだ移動が失敗しても、移動元のファイルが消えることはありません。ディレクトリの移動もでき、含まれるファイルはすべて再帰的に移動されます。

S3 を使うには、AWS の認証情報を設定し、boto3 パッケージをインストールしておく必要があります。ストレージをまたいだ転送はネットワークの速度に左右されるので、新しいストレージを使い始めるときは、まず小さなファイルで試してください。

入力したディレクトリへのコピー/移動

File → Copy to…(copy_files_to)と File → Move to…(move_files_to)は、選択したファイルを、先にそこへ移動することなく、反対側のペイン以外の場所へコピーまたは移動します。

  1. 1 つ以上の項目を選択します。
  2. File → Copy to… または File → Move to… を選びます。
  3. コピー先/移動先を編集して Enter を押します。入力欄には最初、反対側のペインのディレクトリが入っています。Tab でディレクトリ名を補完できます。

相対パスは現在のペインを基準に解釈されます。. は現在のディレクトリ、.. はその親、sub はその中のディレクトリです。~ と絶対パスは Jump to Path と同じように使え、s3://… / ssh://… の場所も使えます。行き先は既存のディレクトリでなければならず、それ以外は入力欄の段階で受け付けられません。その先は通常のコピーや移動と同じで、確認、競合の処理、進捗も同じです。現在のディレクトリそのものにコピーすると、Copy to Other Pane と同じく複製になります。

メニューバーの File メニューと、項目のコンテキストメニューには、これらが Copy to… と Move to… として入っています。

複製

ファイルやディレクトリを、その場所にコピーします。Finder の Duplicate(複製、⌘D)に相当する XeFM の機能です。コピーは元のファイルと同じディレクトリに作られ、名前がぶつからないよう自動的にリネームされます。

1 つ以上の項目を選択して(またはカーソルを 1 つの項目に置くだけでも構いません)、次のどちらかから Duplicate を選びます。

明示的に何も選択していない場合は、カーソル位置のエントリが複製されます。複製の後、カーソルは新しいコピーに移ります。

AFX style ではキーボードショートカットは割り当てられていません(Orthodox にはあります。キーマッププリセットを参照してください)。追加するには、設定で duplicate_files アクションをキーに割り当てます。例:

KEY_BINDINGS['duplicate_files'] = ['Shift-D']

Copy to Other Pane(copy_files)も複製を行います。両方のペインが同じディレクトリを表示しているときは、エラーにする代わりに、Duplicate とまったく同じように自動でリネームしてコピーします。(移動は、同じディレクトリを行き先にすることを引き続き拒否します。)

名前の付け方

複製には、競合の解決の「Keep both」と同じ ` (N)` の方式が使われます。

元の名前 複製 次の複製
report.pdf report (1).pdf report (2).pdf
photos(フォルダー) photos (1) photos (2)
.bashrc(ドットファイル) .bashrc (1) .bashrc (2)
archive.tar.gz archive.tar (1).gz archive.tar (2).gz

ファイルでは最後の拡張子の前に接尾辞が挿入され、ディレクトリと拡張子のない名前では末尾に付け加えられます。

複製では既定で確認のダイアログが表示されます。Finder のように即座に複製したい場合はオフにします。

CONFIRM_DUPLICATE = False   # default: True

ディレクトリは再帰的に複製されるので、確認は大きなツリーをうっかり複製してしまうのを防ぐのに役立ちます。

注意と制限

削除

File → Move to Trash…(delete_files、Delete キーでも実行できます)は、選択項目、またはカーソル位置の項目をゴミ箱に移動します。ゴミ箱は Windows ではごみ箱(Recycle Bin)と呼ばれます。Finder、エクスプローラー、またはデスクトップのファイルマネージャーから元に戻せます。File → Delete Permanently…(delete_permanently、Shift-Delete キーでも実行できます)は、ゴミ箱を使わずに完全に削除します。どちらも先に確認します。ゴミ箱への削除を参照してください。

競合の解決

コピーや移動の行き先に同じ名前のファイルやフォルダーがすでにある場合、XeFM は黙って上書きせず、いったん止まってどうするかを尋ねます。ダイアログには項目の名前が示され、Source(コピー元)と Existing(既存のもの)の両方のサイズと更新日時が並べて表示されます。新しい方と大きい方には印が付くので、ダイアログを離れずに判断できます。

 File exists (2 of 5)
 report.pdf already exists in the destination.

 │          │              Size │ Modified                 │
 │ Source   │ 120.6 KB · larger │ 2026-10-13 09:43 · newer │
 │ Existing │            2.0 KB │ 2026-10-12 09:43         │

 [ ] Apply to all remaining
   Overwrite   Overwrite older   [ Skip ]   Keep both   Compare   Cancel
キー 選択肢 動作
o Overwrite 既存の項目を置き換えます。フォルダーはマージされます。ファイルが既存のフォルダーにコピーされ、同じ名前のファイルは置き換えられます。
u Overwrite older 既存の項目がコピー元より古い場合だけ置き換え、そうでなければスキップします。フォルダーでは、マージがファイルごとに判断します。
s Skip 既存の項目はそのままにして先へ進みます(既定 — Enter)。
k Keep both 代わりに空いている名前でコピーします:report (1).pdf。
d または = Compare 2 つのファイルを差分ビューアーで開きます。閉じる(Esc)と同じダイアログに戻ります。両方がファイルの場合にだけ表示されます。
c / Esc Cancel 操作全体を中止します。

a または Space で Apply to all remaining(残りすべてに適用)を切り替えます。チェックすると、同じ操作のそれ以降の競合すべてに、もう一度尋ねることなくその選択が使われます。Overwrite older の場合は「古いものをすべて上書き」という意味になり、残りの各ファイルはそれぞれの日時で判断されます。

フォルダーがすでにある場合

フォルダーを同じ名前のフォルダーにコピーまたは移動すると、両者はマージされます。ダイアログは中のファイルごとではなくフォルダーについて一度だけ尋ね、その選択が中のファイルに適用されます。Overwrite は両方にあるファイルをすべて置き換え、Overwrite older は移動先で古いものだけを置き換え、Skip はフォルダー全体をそのままにし、Keep both は name (1) としてコピーします。

そのため、中身について何も教えてくれない 2 つのフォルダー自体のサイズや日時の代わりに、ダイアログはマージで出会うことになるものを数えて表示します。

 Folder exists
 photos already exists in the destination. The folders are merged.

 • 12 files in both: 8 older at the destination, 4 not
 • 40 files only in the source

「8 older at the destination」は、まさに Overwrite older が置き換えることになるものです。数えるのは 10,000 ファイルで打ち切られるので、巨大なフォルダーやリモートのフォルダーでも質問が待たされることはありません。その場合、ダイアログは残りを確認していないことを示します。

「古い」の意味

既存の項目は、その更新日時がコピー元より 2 秒を超えて前である場合に、古いとみなされます。それより差が小さい日時は同じとみなされ、そのファイルはスキップされます。FAT/exFAT のドライブ(USB メモリー、SD カード)は日時を 2 秒刻みで記録するので、そうしないとコピーのたびに「古い」ように見えてしまうからです。どちらかの日時が読めない場合、そのファイルはスキップされるので、推測で上書きされることはありません。

移動で Overwrite older のもとでフォルダーをマージした場合、既存のコピーの方が新しかったファイルは移動元のフォルダーに残り、移動元のフォルダーも削除されません。ログにはそれぞれの名前が記録されます(Kept '…': the destination's copy is not older)。

競合の解決は、XeFM が対応するすべてのストレージの種類(ローカル ↔ S3、SFTP など)で動作します。CONFIRM_COPY / CONFIRM_MOVE をオフにしていても、常に尋ねます。これらの設定項目が制御するのは、操作を始める前の「Copy N item(s) to …?」という質問だけです。すでにあるフォルダーにアーカイブを展開する場合は、先にそれ専用の質問があります(CONFIRM_EXTRACT_ARCHIVE)。

進捗表示

コピーと移動の操作では、詳しい進捗がリアルタイムで表示されます。大きなファイルや、多数のファイルを含むディレクトリで特に役立ちます。転送がバックグラウンドで進む間も、UI は応答し続けます。

進捗ダイアログには、全体のバーが 1 本と、その下に現在処理中のファイルが表示されます。

Copy…
[███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░]
12 / 100 items — 350.2M / 2.1G

photos/IMG_2041.jpg                 8.1M / 24.5M
photos/IMG_2042.jpg                12.9M / 31.0M
notes.txt
video/trip.mov                    310.5M / 1.4G

キャンセル

操作の進捗ダイアログが開いている間、XeFM のほかの部分はその完了を待ちます。代わりに作業を続けたい場合は、ダイアログの Run in background ボタンで操作をバックグラウンドに回してください。

キャンセルするには、Cancel(または ESC)を押し、続けて Cancel operation を押します。先に確認があり、Enter かもう一度 ESC を押すと操作は続行されます。キャンセルはファイルの合間と、大きなファイルではチャンクごとに確認されるので、次の確認点で止まるまで少し時間がかかることがあります。途中まで書かれたファイルはきれいに削除され、書きかけのものは何も残りません。

これはリモートの転送にも当てはまります。S3 や SFTP サーバーへの遅いアップロードも、キャンセルすれば最後まで続かずに止まります。キャンセルした S3 のアップロードは、オブジェクトも、課金対象になる途中までアップロードされた断片も残しません。キャンセルしたダウンロードは、ディスクにファイルを残しません。SFTP の転送は、キーを押してから 0.5 秒ほどで止まります。

進捗表示はディスクやストレージの種類をまたいで動作するので、外付けドライブへの移動でも、ローカルのコピー、ストレージをまたいだ転送、S3 から S3 への転送と同じように、ファイルごとのバイト単位の進捗が表示されます。設定は必要ありません。常に有効で、ファイルのサイズ、ファイル数、ターミナルの幅に自動的に合わせます。

作成の操作

どちらも、現在のディレクトリに書き込めるかを確認し、既存の名前を上書きすることは拒否します。

カーソルの行き先

操作によってカーソルがペインの先頭に戻されることはありません。削除、コピー、移動、複製、リネームの後も、カーソルは元のファイルの上にあります。その上の行が増えたり減ったりしても、サイズや日付でソートしたペインでも、逆順にソートしたペインでも同じです。

カーソル位置のファイルそのものが消えた場合(削除した、外へ移動した、選択したファイルのまとまりをまとめて削除した場合)は、カーソルはその場所に来たエントリに移ります。そのため、delete_files を繰り返すと、ディレクトリを下へ向かって削除していけます。一覧の末尾では代わりに新しい最後のエントリへ上がり、空にしたばかりのディレクトリでは先頭に戻ります。

リネームでは、1 つのファイルをリネームした場合も、多くのファイルに一括リネームを実行した場合も、カーソルは新しい名前になったファイルの上に残ります。複製では、カーソルは新しいコピーの上に移ります。XeFM 自身が行ったのではない変更でも同じです。ほかのプログラムが書き込んでいるディレクトリでファイルが現れたり消えたりしても、動くのは行であって、カーソルではありません。

カーソルが意図的に先頭へ戻る唯一の場面は、フィルターの変更(View → Filter…、filter)です。フィルターを変えると選択が解除され、絞り込んだ一覧が最初から表示されます。

関連項目