この記事ではRaspberry Piでのcp
コマンドの基本的な使い方と例、オプションなどについて解説しています。
この記事でできること
cp
コマンドを使用して任意のファイル・ディレクトリをコピーできるようになる。- ファイル上書きとなる前に警告を表示するようにエイリアスを設定・解除できるようになる。
cpコマンド
cp
コマンドでは指定したファイルディレクトリをコピーすることができます。cp
はcopy
の略でどのLinuxでも最初から入っている基本コマンドの一つとなっています。
ファイルをコピーする
まずは基本的なコマンドからです。以下の形式でコマンドを実行します。
$ cp [コピー元のファイル名] [コピー先のファイル名]
例えばmeeting.txt
をmeeting_copy.txt
という名前でコピーしたときは、
$ cp meeting.txt meeting_copy.txt
と実行します。Windowsのように勝手にコピーと名前に追加して作成することがないので、毎回自分でコピー先のファイル名を指定してあげる必要があります。
ディレクトリを何も書かないままだと現在の作業ディレクトリにコピーされますが、コピー先のディレクトリを指定することもできます。先ほどのmeeting.txt
を現在いるディレクトリ内のbackup
というディレクトリにコピーしたいときは以下のどちらかでもいいので実行します。
$ cp meeting.txt meeting/ $ cp meeting.txt meeting/meeting.txt
コピー先に指定した名前がディレクトリの場合、そのディレクトリ内に同じファイル名でコピーを作成します。もちろんこの時にファイル名を指定してコピーを作成することもできます。
一つ注意が必要なのは、コピー先に同じファイル名のファイルが存在している場合、確認なしに上書きしてしまいます。
基本的なファイルのコピーの仕方については以上のような感じです。
-rオプションでディレクトリごとコピーする
-r
オプションを指定することでディレクトリとその中身を丸ごとコピーすることができます。rm
コマンドでも同じようなオプションが存在していましたが、Linuxではディレクトリとディレクトリ内全部
という意味で-r
や-R
オプションがよく使われます。
例として、以下のコマンドでtest
ディレクトリとその中身をtest_copy
というディレクトリ名でコピーします。
$ mkdir test && touch test/meeting.txt test/image.png # ファイルの作成 $ ls -R # ファイルの確認 ./test: image.png meeting.txt $ cp test test_copy $ ls -R ./test: image.png meeting.txt ./test_copy: image.png meeting.txt # ディレクトリごとコピーされた!
-sオプションでシンボリックリンクを作成する
-s
オプションを使用することでファイルをコピーするのではなくシンボリックリンクを作成します。シンボリックリンクとはWindowsでのショートカットのようなもので実際のファイルへのリンクのみを作成し、あたかもそこにファイルがあるかのように操作することができます。
$ ls dir test $ cd dir $ cp ../test ./test_link $ ls -l test_link -> ../test
ちゃんとリンクのファイル形式になっていますね。シンボリックリンクを削除するにはrm
コマンドでもOKですが専用のunlink
というコマンドも用意されています。
-iオプションで上書き前に警告する
-i
オプションを使用することでコピー先に同名のファイルが存在している場合に警告を表示してくれます。rm
コマンドにも同様に削除前に警告を表示する-i
オプションがありましたね!
$ ls dir test $ cd dir $ cp ../test ./test # 同名のファイルが存在していないので警告は表示されない $ cp ../test ./test cp: overwrite './test'? yes $ ls test
上書きになってしまうファイルが存在していないときは普通のオプションなしのコマンドと同じように動きます。
overwrite ?
と聞かれているときにy
やyes
と入力してエンターキーを押すと上書きします。何も入力しなかったりn
やno
と入力すると上書きされません。
実行時に確認を毎回挟むように設定する
上で紹介した-i
オプションをcp
コマンド実行時に必ず追加するようにします。いちいち打つのがめんどくさかったですが、こうすることでWindowsのように削除時に上書き前に確認を挟んでくれます。
コマンドのショートカットのようなもの(エイリアス
)を作成するために、ホームディレクトリにある.bashrc
というファイルを修正します。
以下の記事でもエイリアスについて解説しています。興味があったらこの記事の後に読んでみてください!
まずはホームディレクトリに移動して.bashrc
ファイルをエディタで開きます。vim
を使っていきますがnano
やemacs
でも大丈夫です。Raspberry Piの場合(Raspbianの場合)最初からvim
は使用可能です。
$ cd # ホームディレクトリに移動 $ vim .bashrc
開いたファイルの末尾にcp
をcp -i
にするエイリアスを作成します。vim
の場合Shift + G
でファイルの末尾に移動することができます。
移動できたらi
で編集モードに入り、以下の内容を追記します。
alias cp='cp -i'
追記できたらEsc
で入力モードから抜け、!wq
で保存・Vimの終了をします。
.bashrc
ファイルの変更は次回ログイン以降、もしくは. .bashrc
を実行することで有効となります。
このエイリアスを削除するには追記した行を消して、再度ログインすることで無効となります。
参考
以下のサイトの情報を引用・参考にしました。