8.4.5 cpコマンド(ファイルまたはディレクトリをコピーする)
形式
cp[-f|-i][-p][-u][-R|-r[-H|-L|-P]]コピー元ファイル名 コピー先ファイル名 cp[-f|-i][-p][-u][-R|-r[-H|-L|-P]]コピー元 ... コピー先ディレクトリ名
機能
ファイルまたはディレクトリをコピーします。
引数
-f
- --force
-
コピー先のファイルを上書きする場合に警告を出しません。-f,-iオプションは最後に指定されたオプションが有効になります。
-i
- --interactive
-
コピー先のファイルを上書きする場合に警告を出し,応答を要求します。標準入力からの応答がyまたはYの文字で始まっていればコピーします。それ以外の文字を応答したり,標準入力が使用できなかったりした場合は,処理を中断し,終了コード0を返して終了します。
-f,-iオプションは最後に指定されたオプションが有効になります。
-p
- --preserve
-
コピー元のファイルの属性を保存します。
Windowsの場合,コピー元のファイルの最終修正日時および最終アクセス日時を保持します。ディレクトリの情報は保持しません。
UNIXの場合,コピー元のファイルの所有者,グループ,アクセス権,最終修正日時および最終アクセス日時を保持します。
-u
- --update
-
ディレクトリ以外のファイルのコピーで,コピー先ファイルがすでに存在し,最終修正日時がコピー元と同じ,またはより新しい場合,コピーをしません。
シンボリックリンクのコピーでは,コピー先がシンボリックリンクの場合はコピー先のシンボリックリンク自身の最終修正日時で判断し,コピー先がファイルの場合はコピー先のファイルの最終修正日時で判断します。
ファイルの最終修正日時は,秒未満の値は切り捨てて判定します。
-R|-r
- --recursive
-
ディレクトリを再帰的にコピーします。
Windowsの場合,このオプションを指定して,コピー元に末尾がディレクトリ区切り文字のディレクトリへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。シンボリックリンクのリンク先のディレクトリをコピーしたい場合は,-H,または-Lオプションと同時に指定してください。
- -H
-
-Rオプションまたは-rオプションと共に指定すると,コマンドライン上で指定したシンボリックリンクをたどります。
ツリー内をたどっている最中に見つけたシンボリックリンクのリンク先はたどりません。
このオプションはコピー元に対して適用されます。
-Rオプションまたは-rオプションを指定しない場合は無視されます。また,-Hオプション,-Lオプションおよび-Pオプションは最後に指定されたオプションが有効になります。
-L
- --dereference
-
-Rオプションまたは-rオプションと共に指定すると,遭遇したすべてのシンボリックリンクをたどります。
このオプションはコピー元に対して適用されます。
-Rオプションまたは-rオプションを指定しない場合は無視されます。また,-Hオプション,-Lオプションおよび-Pオプションは最後に指定されたオプションが有効になります。
-P
- --no-dereference
-
-Rオプションまたは-rオプションと共に指定すると,すべてのシンボリックリンクをたどりません。
このオプションはコピー元に対して適用されます。
-Rオプションまたは-rオプションを指定しない場合は無視されます。また,-Hオプション,-Lオプションおよび-Pオプションは最後に指定されたオプションが有効になります。
- コピー元ファイル名
-
コピーするファイル名を指定します。
- コピー先ファイル名
-
コピー先のファイル名を指定します。
- コピー元
-
コピーするファイルまたはディレクトリを指定します。
- コピー先ディレクトリ名
-
コピー先のディレクトリを指定します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
Windowsの場合,コピー先のファイル名は,コピー元に指定したファイル名で作成されます。Windowsでは,ファイル名の英大文字を英小文字と扱ってコピーします。例えば,コピー対象のファイル名がA.txtの場合,cp a.txt tmpdirと実行すると,tmpdirの中のファイル名はa.txtになります。
Windowsの場合,ファイルをバイナリモードで入出力します。改行コードは変換しません。
-
Windowsの場合,-fオプションを指定してコピー先のファイルを上書きしようとすると,実行するWindows環境の状態によって「Permission denied」を出力してエラー終了することがあります。
UNIXの場合,一般ユーザーがcpコマンドの-pオプションでコピー元のファイルの属性を保存するとき,コピー元ファイルの所有者とcpコマンドの実行者が異なると,コピー元のファイルの所有者,グループ,およびアクセス権情報(setuidビット,setgidビット,スティッキービット)は保存しません。
-
-uオプション指定によってコピー先が新しい(同じ場合を含む)場合,コピーしないときはエラーではなく,正常終了します。
使用例
-iオプションを指定して,コピー先ファイルを上書きすることに対する応答を要求します。
C:\TEMP>%ADSH_OSCMD_DIR%\cp -i file1.txt file2.txt overwrite file2.txt? y C:\TEMP>%ADSH_OSCMD_DIR%\cp -i file1.txt file2.txt overwrite file2.txt? n
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\cp -w cp: illegal option -- w usage: cp [-fipu] [-Rr [-H | -L | -P]] source target cp [-fipu] [-Rr [-H | -L | -P]] source ... directory
ファイルがない場合のエラーメッセージを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\cp file99 file123 cp: file99: No such file or directory