Rsync는 매우 유용합니다. 디렉토리의 모든 파일을 복사 할 필요는 없습니다. 최신 파일 만 업데이트합니다.
cygwin과 함께 사용하지만이 질문의 주요 초점이 아닌 일부 불일치가 있다고 생각합니다.
그래서 동등한가?
Rsync는 매우 유용합니다. 디렉토리의 모든 파일을 복사 할 필요는 없습니다. 최신 파일 만 업데이트합니다.
cygwin과 함께 사용하지만이 질문의 주요 초점이 아닌 일부 불일치가 있다고 생각합니다.
그래서 동등한가?
답변:
Powershell 기능이 아닌 정확한 기능은 아니지만 robocopy 는 rsync가 사용되는 일부 작업을 수행 할 수 있습니다.
이것은 디렉토리를 동기화하는 데 사용됩니다. "rsync"함수를 호출하십시오. robocopy에 권한 문제가있었습니다. 이 문제는 없습니다.
function rsync ($source,$target) {
$sourceFiles = Get-ChildItem -Path $source -Recurse
$targetFiles = Get-ChildItem -Path $target -Recurse
if ($debug -eq $true) {
Write-Output "Source=$source, Target=$target"
Write-Output "sourcefiles = $sourceFiles TargetFiles = $targetFiles"
}
<#
1=way sync, 2=2 way sync.
#>
$syncMode = 1
if ($sourceFiles -eq $null -or $targetFiles -eq $null) {
Write-Host "Empty Directory encountered. Skipping file Copy."
} else
{
$diff = Compare-Object -ReferenceObject $sourceFiles -DifferenceObject $targetFiles
foreach ($f in $diff) {
if ($f.SideIndicator -eq "<=") {
$fullSourceObject = $f.InputObject.FullName
$fullTargetObject = $f.InputObject.FullName.Replace($source,$target)
Write-Host "Attempt to copy the following: " $fullSourceObject
Copy-Item -Path $fullSourceObject -Destination $fullTargetObject
}
if ($f.SideIndicator -eq "=>" -and $syncMode -eq 2) {
$fullSourceObject = $f.InputObject.FullName
$fullTargetObject = $f.InputObject.FullName.Replace($target,$source)
Write-Host "Attempt to copy the following: " $fullSourceObject
Copy-Item -Path $fullSourceObject -Destination $fullTargetObject
}
}
}
}