piapia123
ja

ファイル操作コマンド生成(cp / mv / rsync / scp)

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

この 4 つのコマンドはオプションがほとんど共通していません。最も踏みやすい罠は「そのコマンドに存在しないオプション」です:`mv` に `-p` はなく、`cp` にドライランはなく、`--exclude` を理解するのは rsync だけです。本ツールは選んだコマンドに本当に存在するスイッチだけを付け、捨てたオプションは黙って無視せず説明します。パスの扱いも重要です:空白を含むパスは 1 つずつ引用し(全体を 1 つの引用でくくると 2 つのファイルが存在しない 1 つの名前に変わります)、`*.log` のようなワイルドカードは引用せずシェルの展開に任せます。 コマンドはブラウザ内で組み立てられ、通信もパスの送信も行いません。

機能

  • cp・mv・rsync・scp の 4 コマンド
  • 1 行目がコピー元、以降の各行がコピー先
  • 空白を含むパスを 1 つずつ引用(全体をまとめてくくらない)
  • ワイルドカード(*.log)は引用せずシェルに展開させる
  • rsync 専用の -n ドライランと --exclude
  • そのコマンドが対応しないオプションは黙って捨てずに説明
  • mv の上書きが元に戻せない等のリスクを個別に注意
  • すべてローカルで完結し、通信しません

使い方

  1. 1 行目にコピー元、以降の行にコピー先を書きます
  2. コマンドを選び、必要なオプションにチェックします
  3. リモート先は user@host:/path の形式で入力します
  4. 生成されたコマンドとオプションの説明をコピーします

よくある質問

なぜパスを引用するのですか?どこを引用するのですか?
シェルは空白で引数を区切るため、引用しない `my file.txt` は 2 つの引数になります。正しくは、空白を含む各パスを個別に引用し、`cp "my file.txt" out/` とします。逆に全体を 1 組の引用でくくる(`cp "a.txt b.txt"`)と 1 つのファイル名になってしまいます。本ツールは 1 つずつ判定し、必要なものだけを引用します。
mv で再帰にチェックしても -r が付かないのはなぜですか?
`mv` はもともと再帰的で、ディレクトリを移動すれば中身も移動し、`-r` は受け付けないからです。同様に `mv` に `-p` はありません:移動はディレクトリエントリを付け替えるだけで、パーミッションや時刻は変わりません。そのためこの 2 つはフラグではなく説明になります。
rsync と cp はどちらを使うべきですか?
ローカルでの一度きりのコピーなら `cp` で十分です。差分同期(変更されたファイルだけ転送)、特定ファイルの除外、リモートへの転送、`-n` での事前確認が必要なら `rsync` を使います。`scp` はより単純な代替ですが、差分転送も除外もできません。
cp にドライランがないのはなぜですか?
`cp` にも `mv` にもドライランはなく、`scp` にもないからです。何が変わるか先に見たい場合は、`rsync -n`(オプションが最も揃っています)を使うか、一時ディレクトリを対象にして一度実行してください。対応していないコマンドでドライランを選ぶと、本ツールはその制限を結果に明記します。

関連ツール