【Linux】cp、mvコマンド

2019年3月10日

ファイルやディレクトリのコピーや移動についてまとめています。

cpコマンド

ファイルやディレクトリをコピーします。

形式
cp [オプション] [コピー元ファイルパス] [コピー先ファイルパス]
cp [オプション] [コピー元ファイルパス]...n [コピー先ディレクトリパス]
オプション
オプション 説明
-f コピー先に同じファイルがあると強制的に上書きする
-i コピー先に同じファイルがあった場合、上書きするかの確認(y/nで選択)が出来る
-p コピー元ファイルの「所有者」、「所有者グループ」、「アクセス権」、「タイムスタンプ」の情報を保持したままコピーする
-rもしくは-R 指定したディレクトリ階層をそのままコピーする
-d シンボリックリンクをコピーする
-a 元ファイルの構成と属性をコピー先でも保持する(-dpRと同じ)
[root@hostname /]#
cp sample_a.txt sample_a.txt.org
「sample_a.txt」の内容を「sample_a.txt.org」にファイル名を変更してコピーする

ディレクトリをコピーする場合は、「-r(-R)」オプションが必ず必要になります。

また、システム上管理者ユーザーや特定のユーザーでしか実行出来ないファイルやディレクトリがある場合は「-p」オプションでコピーする必要があります。

mvコマンド

指定した場所にファイルやディレクトリを移動します。また、ファイル名やディレクトリ名の変更にも使われます。

形式
mv [オプション] [移動元のファイルかディレクトリのパス]...n [移動先のファイルかディレクトリのパス]
mv [現在のファイルかディレクトリのパス]...n [変更後のファイルかディレクトリパス]
オプション
オプション 説明
-f 移動先に同じファイルがあると強制的に上書きする
-i 移動先に同じファイルがあった場合、上書きするかの確認(y/nで選択)が出来る
[root@hostname /]#
mv /sample/sample_a.txt ˜
「sample_a.txt」をユーザーのホームディレクトリに移動する

ワイルドカード

cp、mvコマンドのファイルパス、ディレクトリパスにはワイルドカードを使用して特定のファイルやディレクトリをコピー、移動することが出来ます。

ワイルドカードとは、「検索する際にどんなパターンにもマッチする特殊文字」を指します。

記号 説明
? 任意の1文字
* 0文字以上の文字列
[…] []内に含まれる任意の1文字
[!…] []内に含まれない任意の1文字
説明
file.? 最後の1文字が何でもよい(file.c、file.h等が一致する)
*.sh 最後が「.sh」でその前の文字は何でもよい(.sh、a.sh、file.sh等が一致する)
[abc]hoge.txt a、b、cのいずれか。「[a-c]」でも同様の意味となる(ahoge.txt、choge.txt等が一致する)
[!0-9] 数字以外
[root@hostname /]#
mv /sample/*.c /lib
sampleディレクトリ内の拡張子が「.c」のファイルをlibディレクトリに移動する