コピー&ペーストは、パソコンで最もよく使う操作の一つです。Ctrl+
Cや
Ctrl+
V` のキーボードショートカットを使えば簡単にできますが、Linux ターミナルではそれほど簡単ではありません。この作業を行うにはいくつかの選択肢があります。以下は、Linux端末でテキスト、ファイル、ディレクトリをコピー&ペーストする方法です。
テキストのコピーと貼り付け
ターミナル上でテキストをコピーしたい場合、マウスでテキストをハイライトし、 Ctrl
+ Shift
+ C
を押すとコピーされます。
カーソルのある場所にペーストするには、キーボードショートカットの Ctrl
+ Shift
+ V
を使います。
貼り付けのショートカットは、Word文書(あるいは他のアプリケーション)からテキストの一部をコピーし、ターミナルに貼り付けたい場合にも適用されます。例えば、ブラウザで Web ページからコマンドをコピーし、 Ctrl
+ Shift
+ V
ショートカットを使ってターミナルに貼り付けることができます。
- Gnome Terminal - ハンバーガーメニューをクリックし、“Preferences “をクリックします。“Shortcuts “に移動し、“Edit “にスクロールします。コピー」と「貼り付け」のオプションが表示され、設定することができます。
- コンソール** - “設定 “に移動し、 “キーボードショートカットを構成する “をクリックします。コピー “を検索し、前述のキーコンボを使用するように設定し、“貼り付け “も同じように設定します。
他のほとんどの端末では、コンソールでコピー/ペーストするためのデフォルトの普遍的な組み合わせにロックされ、それらを設定する機能はありません。
単一のファイルのコピーと貼り付け
Linux のコマンドラインでファイルやフォルダーをコピーする場合、上記のキーボードショートカットは使えません。cpはコピーの略語です。構文も簡単です。cp` の後にコピーしたいファイルと移動させたい場所を指定します。
cp your-file.txt ~/Documents/ (あなたのファイル.txtをコピーしてください。
これはもちろん、ファイルが作業しているのと同じディレクトリにあることを前提にしています。両方指定することもできます。
cp ~/Downloads/your-file.txt ~/Documents/ です。
また、コピーする際にファイル名を変更することもできます。コピー先に新しい名前を指定します。
cp ~/Downloads/your-file.txt ~/Documents/new-name.txt
フォルダとその内容をコピー&ペーストする
フォルダとその内容をコピーするためには、cp
コマンドに再帰的にコピーするように指示する必要があります。これは -r
フラグを使えば簡単です。
cp -r ~/Downloads/pictures-directory ~/Pictures/family-vacation-pics
残りの構文はすべて全く同じです。rフラグは
cp` にディレクトリで作業していることを伝え、その内容をコピーするように指示します。
もし、既存のファイルを上書きして貼り付けたい場合は、 -f
フラグを追加してください。
cp -rf ~/Downloads/pictures-directory ~/Pictures/family-vacation-pics
複数のファイルをコピー&ペーストする
複数のファイルをコピーすることもできます。Linuxのコマンドラインでは、{}
という括弧を使って、複数の項目を一度にターゲットにすることができます。これを利用して、コピーする各ファイルの名前をカンマで区切って列挙することができます。
cp ~/Downloads/{file1.txt,file2.jpg,file3.odt} ~/Documents/
ファイルタイプが異なる3つのファイルは、すべてDocumentsディレクトリにコピーされます。
同じ種類のファイルをすべてコピー&ペーストする
同じ種類のファイルが大量にある場合、ワイルドカード文字 *
を使ってコピーすることができます。アスタリスク/ワイルドカードはLinuxのコマンドラインに対して、その場所にあるものなら何でも絶対に受け入れるように指示します。つまり、Linuxに *.jpg
をコピーするように指示すると、名前や.jpgの前にあるものに関係なく、すべてのJPGファイルをコピーします。
cp ~/Downloads/*.jpg ~/Pictures/
もし、複数のファイルタイプ、例えばJPGとPNGを使いたい場合は、先ほどの括弧を使用することができます。
cp ~/Downloads/*.{jpg,png} ~/Pictures/
コピーをよりインタラクティブにする
このガイドを読んでいて気づいたかもしれませんが、cp
を使用すると、エラーが発生しない限り、処理を終えた後に確認やプロンプトのようなものは表示されません。これは、特に遅いハードウェアで非常に大きなファイルのコピー操作をしていて、完了するまでに長い時間がかかるような場合には、ちょっとした不快感の原因になるかもしれません。
コマンドに -v
フラグを付けることで、 cp
に対して、その処理に関する最も詳細な出力を行うように指示します。i` フラグは確認のプロンプトを表示し、特定のファイルの上書きなどの操作をキャンセルする機会を与えます。
cp -rvi ~/Downloads/*.jpg ~/Pictures/
一般に -v
と -i
フラグは、Linux に共通する多くのコマンドで利用可能です。
Rsync vs CP
何らかの理由でファイルを上書きするようなコピー操作を何度も行う必要がある場合 (例えば、たまに更新するようなバックアップを作成する場合)、 rsync
はあなたの顔をほころばせるかもしれません。
ファイルやフォルダの移動
もし、ある場所から別の場所へ、複製を作らずにファイルを移動したいのであれば、それも簡単にできますが、ファイルの移動には mv
コマンドが必要です。構文は cp と非常によく似ています。
mv ~/Downloads/your-file.txt ~/Documents/
同様に、ファイル名を変更することもできます。
mv ~/Downloads/your-file.txt ~/Documents/renamed.txt
しかし、1つだけ大きな違いがあります。フォルダを丸ごと移動させるのに -r
フラグは必要ありません。
mv ~/Downloads/downloaded-folder ~/Pictures/vacation-pics
よくある質問
rsync は cp よりも優れていますか?
一般的にはどちらが優れているということはありません。rsync` はコピー元とコピー先の両方のフォルダのファイルを完全に比較し、帯域幅や書き込みサイクルを節約するためにいくつかのコンピュータリソースを取ります。特定のフォルダのバックアップを常に更新している場合には最適ですが、コピー操作を1回行うだけであれば理想的とは言えません。
cpはスイスアーミーナイフのような機能で、ただ仕事をこなすだけです。もし、何かを上書きしなければならない場合、
cp` がそれをやってくれます。対話的な機能があるため、初心者にも優しく、コピー作業をもう少しコントロールすることができます。
なぜ Ctrl+C でターミナルからコピーできないのですか?
Linuxのターミナルアプリケーションでは、キーボードの Ctrl
+ C
を押すと、カーネルに SIGINT
(割り込み) シグナルが送信されます。これはLinuxにその端末で動作しているものを停止するように伝える簡単な方法です。