Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Windows】FTPコマンドはデフォルト上書き!同名ファイルの消失を防ぐ「runique on」の使い方

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

Windowsのコマンドプロンプトから利用できる標準の「ftp」コマンド。 サーバー間でサクッとファイルをダウンロード(転送)したいときに便利ですが、実はデフォルトの挙動のまま使うと、意図しないデータの消失(上書き)を招く危険があります。

今回は、Windows標準のftpコマンドが持つ「上書き仕様」の罠と、それをスマートに回避してファイル名に自動で連番を振ってくれる隠しコマンド runique on の使い方を解説します!

スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

🚨 デフォルトの挙動:同名ファイルは「無言で上書き」される

Windowsのftpクライアント(ftp.exe)の初期状態では、ファイルの「上書きを確認する」機能や制御オプションが有効になっていません(これを runique off の状態と言います)。

そのため、getmget コマンドを使ってファイルをダウンロード(転送)する際、ローカル環境(自分のPC側)に全く同じ名前のファイルがすでに存在していても、確認メッセージを出すことなくデフォルトで上書きされてしまいます。

「大切なローカルファイルを過去の古いファイルで上書きしてしまった……」という悲劇を起こさないためには、転送前に設定を1行変える必要があります。

🛠️ 上書きを防ぐ救世主:runique on コマンド

ローカルファイルの強制上書きを防ぐには、FTPサーバーに接続した後に runique on というコマンドを実行します。

これを行うだけで、もしダウンロード時に同名のファイルが存在した場合、Windowsが自動的にファイル名に連番(.1.2 など)を付与して別名で保存してくれるようになります。

具体的な実行手順

設定方法は非常に簡単です。FTPクライアントを起動した後に以下のコマンドを叩くだけです。

  1. コマンドプロンプトからFTPサーバーに接続する

    DOS

    ftp <サーバーのIPアドレスまたはホスト名>
    
  2. ログイン完了後、以下のコマンドを実行する

    Plaintext

    ftp> runique on
    

💡 実行後の挙動イメージ

この設定が有効な状態で、例えばローカルにすでに sample.txt があるにもかかわらず、サーバーから同名の sample.txt をダウンロードしようとすると、自動的に sample.txt.1 という名前で保存され、既存のファイルが守られます。さらに重複すれば sample.txt.2 と連番が増えていきます。

元の設定(デフォルトの上書き動作)に戻したい場合は、runique off を実行すればOKです。

📋 合わせて知っておきたいFTP関連コマンド

FTPクライアント内では、runique 以外にも運用の効率を上げる便利なコマンドが用意されています。

1. 利用できるコマンドを調べる help

FTPクライアント内で何ができるか迷ったら、まずはこのコマンドを叩きましょう。

Plaintext

ftp> help

実行すると、その環境のFTPクライアントで利用可能なコマンドの一覧と、簡単な説明を確認することができます。

2. 複数一括転送の挙動を制御する glob

mgetmput を使って、ワイルドカード(*? などのメタ文字)を含んだ複数ファイルを一括転送する際、ファイル名の展開動作を制御するのが glob コマンドです。

Plaintext

ftp> glob on    # メタ文字の展開を有効にする(デフォルト)
ftp> glob off   # メタ文字の展開を無効にする

※なお、この glob はファイル名の「展開方法」を制御するものであり、今回紹介した「上書きの制御」には直接関係しません。複数ファイルを安全に一括ダウンロードしたい時は、glob on(一括指定)と runique on(上書き防止)を組み合わせて使うのがベストです。

📝 まとめ

Windows標準のFTPコマンドは、手軽な反面、デフォルトでは「同名ファイルは上書き」という男前すぎる仕様になっています。

  • 何も設定しない(runique off ➔ 同名ファイルは強制上書き

  • runique on を実行する ➔ 重複時は ファイル名.1 のように自動連番で保護

バッチ処理などで自動ダウンロードを組み込む際や、手動で大切なデータを引っ張ってくる際は、接続直後にまず runique on を唱える癖をつけておくと、不慮のデータ消失トラブルを未然に防ぐことができますよ!

タイトルとURLをコピーしました