複数ファイルの移動

 それでは次に複数のファイルを移動させてみましょう。と、その前にtestディレクトリに移動させた1.txtファイルは削除してください。削除するコマンドは次回説明しますが、以下のように入力すると先ほど移動させた1.txtファイルが削除されます。

rm -f ~/Desktop/test/1.txt

PowerShellでも上記のコマンドで動作します(rm -Forceにします)。rmがRemove-Itemのエイリアスとして定義されているからです。ですので、以下のように入力しても1.txtファイルを削除することができます。

Remove-Item ~/Desktop/test/1.txt

なお、このようにrmコマンドを入力して削除されたファイルはゴミ箱に入る事なく、バッサリと削除されてしまいます。気をつけましょう。そんなコマンドを使ってまで削除したいくない(失敗したくない)のであれば、GUIでファイルをゴミ箱に入れてください。

それでは、今度はtestディレクトリに連番ファイルを作成し、そのファイルをdataディレクトリに移動させます。
とりあえず入力するディレクトリパスを長々と入力するのは面倒なので、cdコマンドでtestディレクトリに移動します。以下のように入力するとカレントディレクトリが~/Desktop/testになります。カレントディレクトリのパスを調べるにはpwdと入力すればOKです。

cd ~/Desktop/test

次に7個の空ファイルを作成します。bash,zshなら以下のようにコマンドを入力すると7個のファイルが作成されます。

touch {1..7}.txt

PowerShellの場合は以下のようにコマンドを入力します。

1..7 | %{New-Item "$_.txt" -ItemType file}

それでは、この7個のファイルをdataディレクトリに移動させます。mvコマンドは移動させるファイルを複数指定できます。以下のようにすると1.txt, 2.txt, 3.txtファイルがdataディレクトリに移動します。

mv 1.txt 2.txt 3.txt ~/Desktp/data/

mvコマンドで2個以上のパラメーターが指定された場合、最後のパラメーターが移動先になります。最後のパラメーターより前が移動対象のファイル・ディレクトリになります。

それでは次に特定の拡張子を持つファイルをまとめてdataディレクトリに移動します。とりあえず先ほど移動させた1.txt,2.txt,3.txtを元のtestディレクトリに戻しておきます。mvコマンドを使ってtestディレクトリに移動させてください。どのようなコマンドを入力すれば良いかは考えてみてください。ちょっとした練習です。やっぱりわからない、という場合はGUIで1.txt,2.txt,3.txtを元のtestディレクトリに戻しても構いません。

さて、複数のファイルをまとめて移動させるには以下のようにワイルドカードを指定します。(カレントディレクトリは~/Desktop/testです)

mv *.txt ~/Desktop/data/

複数の異なる拡張子を持つファイルを移動させることもできます。とりあえずtestディレクトリ内にある拡張子がjpgおよびjpegのファイルをdataディレクトリに移動させます。jpg、jpegの拡張子を持つファイルは以下のようにtouchコマンド等で作成しておきます。ついでにtxtの拡張子のファイルも作成します。もちろん、用意できるなら以下のコマンドを入力する必要はありません。

touch {1..7}.{txt,jpg,jpeg}

jpgとjpegの拡張子を持つファイルをdataディレクトリに移動させるには{}内に,で区切って拡張子を指定します。

mv *.{jpg,jpeg} ~/Desktop/data/

もう少し条件を付けたファイルの移動もできます。拡張子がjpgまたはjpegで、さらにファイル名が1〜3の範囲のものだけをdataディレクトリに移動させるには以下のようになります。

mv [1-3].{jpg,jpeg} ~/Desktop/data/

PowerShellだと以下のようになります。

Move-Item [1-3].jpg,[1-3].jpeg ~/Desktop/data/

ディレクトリを移動

 ファイルの移動だけでなくディレクトリの移動もできます。とりあえず、testディレクトリ内にsampleという名前のディレクトリを作成しておきます。以下のコマンドを入力するかGUIでディレクトリを作成します。

mkdir ~/Desktop/test/sample

ディレクトリの移動もファイルの移動と同様にmvコマンドを使います。指定方法はファイルの時と同じです。以下のように指定するとデスクトップ上にあるtestディレクトリ内にあるsampleディレクトリがdataに移動します。

mv ~/Desktop/test/sample ~/Desktop/data/