Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

robocopy에서 파일의 ADS(Alternate Data Stream) 정보 복사를 제외하는 방법

예를 들어, dropbox로 공유된 파일들을 WSL로 복사하면,

robocopy .\dropbox\test \\wsl$\Ubuntu20.04\home\testusr\test /S 

파일마다 ":com.dropbox.attrs" 확장자가 붙은 파일들이 함께 생성됩니다. 가령, changelog 파일이 있는 경우 "changelog:com.dropbox.attrs"라는 파일도 복사됩니다.

왜냐하면 dropbox의 동기화를 위한 메타 정보를 해당 파일의 ADS(Alternate Data Stream)로 저장하기 때문입니다.

일반적인 경우, 즉 윈도우상에서 파일을 복사하는 경우라면 이것이 거의 문제 될 것이 없지만, 위의 예제처럼 (리눅스 운영체제의) WSL로 복사되면 ADS 정보가 NTFS 파일 시스템에서만 지원하는 것이므로 robocopy는 ADS 정보만을 빼서 별도의 파일로 복사해 주는 (어쩌면 원치 않는) 서비스를 해주는 것입니다.




얼핏 파일 복사가 되기 때문에 "/XF *.dropbox.attrs" 옵션을 주면 될 것 같지만 그래도 해당 파일들은 생성됩니다. 다행히 "robocopy /?"의 도움말을 보면, ADS 복사 제어를 위해 2가지 옵션이 나오는데요,

/COPY:copyflag[s] :: what to COPY for files (default is /COPY:DAT).
                    (copyflags : D=Data, A=Attributes, T=Timestamps, X=Skip alt data streams).
                    (S=Security=NTFS ACLs, O=Owner info, U=aUditing info).

/DCOPY:copyflag[s] :: what to COPY for directories (default is /DCOPY:DA).
                    (copyflags : D=Data, A=Attributes, T=Timestamps, E=EAs, X=Skip alt data streams).

ADS 정보는 파일뿐만 아니라 디렉터리에도 추가될 수 있으므로 위와 같이 파일에 적용될 /COPY 옵션과 디렉터리에 적용될 /DCOPY 옵션으로 나뉩니다.

만약, 모두 제외하고 싶다면 다음과 같은 식으로 명령을 수행하면 됩니다.

robocopy .\dropbox\test \\wsl$\Ubuntu20.04\home\testusr\test /S /COPY:DATX /DCOPY:DAX

반면 dropbox의 경우, 디렉터리에는 ADS 정보를 부여하지 않으므로 다음과 같은 명령어로도 충분합니다.

robocopy .\dropbox\test \\wsl$\Ubuntu20.04\home\testusr\test /S /COPY:DATX




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 7/18/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 106  107  108  109  110  111  112  [113]  114  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11132정성태1/19/201736602.NET Framework: 634. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (1) - x86 환경에서의 __cdecl, __stdcall에 대한 Name mangling [1]파일 다운로드1
11131정성태1/13/201725391.NET Framework: 633. C# - IL 코드 분석을 위한 팁 [2]
11130정성태1/11/201725972.NET Framework: 632. x86 실행 환경에서 SECURITY_ATTRIBUTES 구조체를 CreateEvent에 전달할 때 예외 발생파일 다운로드1
11129정성태1/11/201730104.NET Framework: 631. async/await에 대한 "There Is No Thread" 글의 부가 설명 [9]파일 다운로드1
11128정성태1/9/201723896.NET Framework: 630. C# - Interlocked.CompareExchange 사용 예제 [3]파일 다운로드1
11127정성태1/8/201724404기타: 63. (개발자를 위한) Visual Studio의 "with MSDN" 라이선스 설명
11126정성태1/7/201729101기타: 62. Edge 웹 브라우저의 즐겨찾기(Favorites)를 편집/백업/복원하는 방법 [1]파일 다운로드1
11125정성태1/7/201725933개발 환경 구성: 310. IIS - appcmd.exe를 이용해 특정 페이지에 클라이언트 측 인증서를 제출하도록 설정하는 방법
11124정성태1/4/201729341개발 환경 구성: 309. 3년짜리 유효 기간을 제공하는 StartSSL [2]
11123정성태1/3/201724778.NET Framework: 629. .NET Core의 dotnet.exe CLI 명령어 확장 방법 [1]
11122정성태1/3/201723451.NET Framework: 628. TransactionScope에 사용자 정의 트랜잭션을 참여시키는 방법 [2]파일 다운로드1
11121정성태1/1/201721394개발 환경 구성: 308. "ASP.NET Core Web Application (.NET Core)"와 "ASP.NET Core Web Application (.NET Framework)" 차이점
11120정성태12/25/201628438개발 환경 구성: 307. ASP.NET Core Web Application을 IIS에서 호스팅하는 방법
11119정성태12/23/201649861개발 환경 구성: 306. Visual Studio Code에서 Python 개발 환경 구성 [2]
11118정성태12/22/201637783오류 유형: 374. Python 64비트 설치 시 0x80070659 오류 발생 [3]
11117정성태12/21/201623712웹: 35. nopCommerce 예제 사이트 구성 방법
11116정성태12/21/201625740디버깅 기술: 84. NopCommerce의 Autofac 부하(CPU, Memory) [2]
11115정성태12/21/201628746Windows: 133. 윈도우 서버 2016에서 플래시가 동작하지 않는 경우 [2]
11114정성태12/19/201638812Windows: 132. 역슬래시(backslash) 문자가 왜 통화 표기 문자(한글인 경우 "\")로 보일까요? [2]
11113정성태12/6/201621699오류 유형: 373. ICOMAdminCatalog::GetCollection에서 CO_E_ISOLEVELMISMATCH(0x8004E02F) 오류 발생파일 다운로드1
11112정성태11/23/201626862오류 유형: 372. MySQL 서비스가 올라오지 않는 경우 - Error 1067
11111정성태11/23/201635486.NET Framework: 627. C++로 만든 DLL을 C#에서 사용하기 [2]
11110정성태11/17/201622970.NET Framework: 626. Commit 메모리가 낮은 상황에서도 메모리 부족(Out-of-memory) 예외 발생 [2]
11109정성태11/17/201622943.NET Framework: 625. ASP.NET에서 System.Web.HttpApplication 인스턴스는 다중으로 생성됩니다.
11108정성태11/13/201621998.NET Framework: 624. WPF - Line 요소를 Canvas에 위치시켰을 때 흐림(blur) 현상파일 다운로드1
11107정성태11/9/201626270오류 유형: 371. Post cache substitution is not compatible with modules in the IIS integrated pipeline that modify the response buffers.파일 다운로드1
... 106  107  108  109  110  111  112  [113]  114  115  116  117  118  119  120  ...