* Copy-ItemのRecusiveオプション [#t37130c7]
** 概要 [#x3e5ee9e]
- PowerShellのCopy-Itemを-Recursiveなしでディレクトリに対して実行すると、そのディレクトリだけがコピーされる。
- コピー先ディレクトリが存在しない場合はコピー元ディレクトリと同名で新規にディレクトリが作成され、
- コピー先ディレクトリが存在する場合はコピー先ディレクトリ下にコピー元ディレクトリと同名で新規にディレクトリが作成される。
- なお、UNIXのBashなどの場合、cpを-rなしでディレクトリに対して実行するとエラーになる。
** ディレクトリだけコピーする - Recusiveオプションなし[#q4ab32de]
*** 0. 現在の状態 [#k95b67c5]
PS> dir -r | select fullname
FullName
--------
C:\tmp\dir1
C:\tmp\dir1\1.txt
*** 1. dir1をコピーしてdir2を作る [#l9de438f]
PS> Copy-Item dir1 dir2
PS> dir -r | select fullname
FullName
--------
C:\Users\brazil\tmp\dir1
C:\Users\brazil\tmp\dir2
C:\Users\brazil\tmp\dir1\1.txt
C:\tmp\dir1
C:\tmp\dir2
C:\tmp\dir1\1.txt
*** 2. dir1をコピーしてdir2の下にdir1を作る [#r65a262f]
PS> Copy-Item dir1 dir2
PS> dir -r | select fullname
FullName
--------
C:\Users\brazil\tmp\dir1
C:\Users\brazil\tmp\dir2
C:\Users\brazil\tmp\dir1\1.txt
C:\Users\brazil\tmp\dir2\dir1
C:\tmp\dir1
C:\tmp\dir2
C:\tmp\dir1\1.txt
C:\tmp\dir2\dir1
** ディレクトリを再起的にコピーする - Recusiveオプションあり [#b7769921]
*** 0. 現在の状態 [#k95b67c5]
PS> dir -r | select fullname
FullName
--------
C:\tmp\dir1
C:\tmp\dir1\1.txt
*** 1. dir1をコピーしてdir2を作る [#w7a861ae]
PS tmp> Copy-Item -Recurse dir1 dir2
PS tmp> dir -Recurse | select fullname
FullName
--------
C:\Users\brazil\tmp\dir1
C:\Users\brazil\tmp\dir2
C:\Users\brazil\tmp\dir1\1.txt
C:\Users\brazil\tmp\dir2\1.txt
C:\tmp\dir1
C:\tmp\dir2
C:\tmp\dir1\1.txt
C:\tmp\dir2\1.txt