前回、ちょっとだけファイル操作をしました。
さすがにあれだけでは普段の作業には足りないので基本的な操作をやりましょう。
↑ 普段は普通にファイルをD&Dなどで操作していると思いますが、 Terminal.appでやるとキーボードのホームポジションから移動せずにコマンドだけで処理することができます。
慣れるとちょっとした作業でマウス取りに行かなくて済むのがすごい便利( ´ ▽ ` )ノ
ということで、今回は簡単なファイル操作をするための三つのコマンドの説明をしたいと思います。
- cp - CoPy files
- mv - MoVe files
- rm - ReMove directory entries
ファイルをコピーしたり移動したり
実は普通にコピペと同じで、Command+C → Command+V or Command+X → Command-V でファイルのコピペも出来るのですが(ついでにCommand+Zでやり直しも出来るのは凄い良いところw)、仮にPC初心者に使い方を教えるなら…
↑ 右クリック(タッチパッドなら二本指で)で出るメニューから複製を選べばコピーできるし、ファイル摘んでフォルダ移動させたら移動できるよ、と教える気がします。
なので、Terminal.appを始める方には…
ファイルコピーしたければ CoPy コマンド使って、移動したければ MoVe コマンド使えば出来るよ。
と教えたいと思いますw
↑ ということで、こんな操作のイメージ( ´ ▽ ` )ノ
ファイルをコピーして、コピーしたファイルを移動(このパターンだとリネームと言った方が良いかも?)しています。
あ、因みに、前回と同じフォルダ構成で、Desktopの下に居ることが前提として始めてます。
cp - CoPy files
先にファイル名の指定の仕方を説明しておくと…
SYNOPSIS cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
ファイル名はだいたいタイピングの順番なのですが、コピー元ファイル(source_file)とコピー先ファイル(target_file)の順番で指定します。
二段目の書式は同じように見えますが、コピー先をディレクトリ指定することが出来るという違いがり、この場合、複数のコピー元ファイルをコピー先ディレクトリにコピーすることが出来ます。
ファイルの指定順番の法則とかは、偶に違うコマンドもありますがだいたいどのコマンドでも同じなので、感覚で慣れますw
各パラメータの間は、スペースで空白を開けることで分割します。
$ cp D
ここまでタイプしたらTABで補完
$ cp DSC_0019.jpg
source_fileとtarget_fileの間の空白まで入力してくれるので、続けてコピー先を…
コピー先は「今は無い」ファイルなので自分で名前を付けましょう。
$ cp DSC_0019.jpg hanami.jpg $ ls DSC_0019.jpg hoge.txt hanami.jpg 名称未設定フォルダ/
何も考えずに花見の写真だから hanami と付けてみました( ´ ▽ ` )ノ
↑ ちゃんとFinderで見てもコピーされてるのが確認できた!!
mv - MoVe files
念のため、こちらもコマンド指定方法確認してみますが…
SYNOPSIS mv [-f | -i | -n] [-v] source target mv [-f | -i | -n] [-v] source ... directory
若干表現が違うけど、左から右にうけなg元→先ファイルを指定するので同じですね(^_^;)
適当に hanami って名付けましたが、ちょっと気に入らないので日本語にします。
※ Terminal.app上でも普通のアプリと同様に Command+Space などで日本語入力のON/OFFは可能です
$ mv hanami.jpg 花見.jpg $ ls DSC_0019.jpg 花見.jpg hoge.txt 名称未設定フォルダ/
↑ ちゃんとFinder上でも反映された!!
# 念のため補足ですが、mv
コマンド投入の際にFinder上の並び(位置)が変わる場合がありますが、そういうものですので気にしなくて大丈夫です(^_^;)
ファイルを削除したり
日本語になってわかりやすくなったところで、古いファイルを削除してみたいと思います( ´ ▽ ` )ノ
# 最初から mv
しとけばいいじゃん、という突っ込みは、その通りなので黙殺します。
rm - ReMove directory entries
$ rm DSC_0019.jpg $ ls hoge.txt 名称未設定フォルダ/ 花見.jpg
さてここで問題が。
Terminal.appでrm
を使って削除を行った場合、削除したファイルはゴミ箱には入りません。
いきなりそのままどこかに消えていってしまいます…
削除したときにゴミ箱に一時的に待避して間違えて削除してしまっても大丈夫な様にするのはFinderの機能なので、Terminal.appで削除する場合は気にしてくれないわけです…
これではちょっと誤操作が怖いので、せめて削除してもいいかどうかの確認くらいして欲しいところ(^_^;)
確認してもらいましょう( ´ ▽ ` )ノ
$ rm -i hoge.txt remove hoge.txt? n $ ls hoge.txt 名称未設定フォルダ/ 花見.jpg $ rm -i hoge.txt remove hoge.txt? y $ ls 花見.jpg 名称未設定フォルダ/
hoge.txt
は学術的に意味が無いよくある普通のファイルですが、今まで使わず無駄に転がっていたので削除してみます。
パラメータで-i
を付けると、「本当に削除していいか?」の確認をしてくれます。
問題無ければ Yes とか y とか答えましょう( ´ ▽ ` )ノ
SYNOPSIS rm [-dfiPRrvW] file ... DESCRIPTION -i Request confirmation before attempting to remove each file, regardless of the file's per- missions, or whether or not the standard input device is a terminal. The -i option over- rides any previous -f options.
僕も実はよくわかってないのですが、たぶん先頭が y
とか Y
なら確認したことになります。
逆にy
と Y
以外を指定すると削除にならないので、怪しい場合はとにかくy
以外を入力しましょう。
$ rm -i 花見.jpg remove 花見.jpg? ok $ ls 花見.jpg 名称未設定フォルダ/
Terminal.appは気が利かないので ok と言っても言うことを聞いてはくれません。
因みに、この -i
オプションは cp
やmv
でも有効で、コピー or 移動先に既に同じ名前のファイルがあった場合、上書きしてしまうかどうかの確認をしてくれます( ´ ▽ ` )ノ
あ、せっかく弄った 花見.jpg
なんですが、既に記事書くのに使ったので用済みだったw
↑ ということでさっくり削除してみました。
$ rm -i 花見.jpg remove 花見.jpg? 否 $ ls 花見.jpg 名称未設定フォルダ/ $ rm -i 花見.jpg remove 花見.jpg? Yeeeaaah $ ls 名称未設定フォルダ/
デスクトップに物があふれているの嫌なので、これでだいぶすっきり…
ところで
$ rm 名称未設定フォルダ/ rm: 名称未設定フォルダ/: is a directory
rmではディレクトリは削除出来なかったりします。
ということで、今回はファイル操作(その2)くらいの勢いでファイルのコピー・移動・削除を紹介しました。
# 次回はディレクトリの操作する方法を紹介します( ´ ▽ ` )