블로그 이미지
Flying Mr.Cheon youGom

Recent Comment»

Recent Post»

Recent Trackback»

« 2025/5 »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

 
 

chmod, chown 파일/폴더 일괄 변경

보안/서버관리 | 2012. 1. 18. 23:15 | Posted by youGom

//파일만
#find ./ -type f -exec chmod -v 600 {} \;

 
//폴더만
#find ./ -type d -exec chmod -v 707 {} \;
 

//파일폴더전부
chmod -R 755 *

:
위 글대로 했을 경우, 약간의 버그가 있었다.
버그 내용은, 일부 내용이 업데이트 되지 않는 것이었다.

코드 두줄 첨부해 주면 위 버그가 사라진다.

( 사실... 첨에 할 때, 그냥 재귀로 했으면 문제 없었을건데.. ㅋㅋㅋㅋ 재귀로 다시 만들기 귀찮아서... 나중에 필요할 때, 재귀방식으로 만들려고 한다 -0-;; )


[ chkcopy ]
@echo off

if NOT EXIST %1 ( 
ECHO PATH ERROR ARG1
GOTO END 
)
if NOT EXIST %2 ( 
ECHO PATH ERROR ARG2 
GOTO END 
)

set run_copy=__todst
set chk_copy=xcopy /s /f /u /y


call %run_copy% %1 %2

FOR /D %%R IN (%1\*) DO ( 
call %run_copy% %%R %2
FOR /D %%S IN (%%R\*) DO ( 
call %run_copy% %%S %2
FOR /D %%I IN (%%S\*) DO ( 
call %run_copy% %%I %2
FOR /D %%J IN (%%I\*) DO ( 
call %run_copy% %%J %2
FOR /D %%K IN (%%J\*) DO ( 
call %run_copy% %%K %2
)
)
)
)
)

set run_copy=
set chk_copy=

:END

@echo on

 

[ __todst ]

rem echo src: %1
rem echo dst: %2
call %chk_copy% %1 %2

FOR /D %%R IN (%2\*) DO ( 
rem echo src: %1
rem echo dst: %%R 
call %chk_copy% %1 %%R
FOR /D %%S IN (%%R\*) DO ( 
rem echo src: %1
rem echo dst: %%S
call %chk_copy% %1 %%S
FOR /D %%I IN (%%S\*) DO ( 
rem echo src: %1
rem echo dst: %%I
call %chk_copy% %1 %%I
FOR /D %%J IN (%%I\*) DO ( 
rem echo src: %1
rem echo dst: %%J
call %chk_copy% %1 %%J
FOR /D %%K IN (%%J\*) DO ( 
rem echo src: %1
rem echo dst: %%K
call %chk_copy% %1 %%K
)
)
)
)
)



  
:
테스트 코드
@echo off
xcopy * ..\dest /s /f /d /u /y
xcopy * ..\dest\a /s /f /d /u /y
xcopy * ..\dest\b /s /f /d /u /y
@echo on

* : 복사할 src
..\dest... : 복사 대상 폴더
/s /f /d /u /y : 옵션


/D:m-d-y 지정된 날짜 이후에 바뀐 파일만 복사합니다날짜가 지정되지 않으면, 대상 파일보다 새로운 원본 파일만 복사합니다.
/S 비어 있지 않은 디렉터리와 하위 디렉터리를 복사합니다. 
/F 복사하는 동안 원본과 대상 파일의 전체 경로 를 표시합니다. 

/U 대상에 이미 있는 파일을 업데이트합니다.

/Y 이미 있는 대상 파일을 덮어쓸지를 확인하기 위해 묻는 것을 금합니다.

이상!! ㅋㅋㅋㅋ

굳이 어플 안만들어도 되겠네 ㅋㅋㅋㅋ 아놔 괜히 2010 스튜디오 깔았네 ㅋㅋ 
( 설치 하는 동안 배치 파일 테스트해봤는데 되버리눼 ㅋㅋㅋ )
 



 

final!!!!!
[ 재귀호출방식으로 할까 했으나... 나중에 더 심화배치가 필요하면 그때 하지머.. 지금은 이대로도 가능하니까... 오늘은여기까지~ ㅋㅋㅋㅋ ]

사용은... chkcopy src dst 로 하면 된다~

[ chkcopy ]
@echo off

if NOT EXIST %1 ( 
ECHO PATH ERROR ARG1
GOTO END 
)
if NOT EXIST %2 ( 
ECHO PATH ERROR ARG2 
GOTO END 
)

set run_copy=__todst

set chk_copy=xcopy /s /f /u /y 


FOR /D %%R IN (%1\*) DO ( 
call %run_copy% %%R %2
FOR /D %%S IN (%%R\*) DO ( 
call %run_copy% %%S %2
FOR /D %%I IN (%%S\*) DO ( 
call %run_copy% %%I %2
FOR /D %%J IN (%%I\*) DO ( 
call %run_copy% %%J %2
FOR /D %%K IN (%%J\*) DO ( 
call %run_copy% %%K %2
)
)
)
)
)

:END

@echo on





[ __todst ]


FOR /D %%R IN (%2\*) DO ( 
echo src: %1
echo dst: %%R 
call %chk_copy% %1 %%R
FOR /D %%S IN (%%R\*) DO ( 
echo src: %1
echo dst: %%S
call %chk_copy% %1 %%S
FOR /D %%I IN (%%S\*) DO ( 
echo src: %1
echo dst: %%I
call %chk_copy% %1 %%I
FOR /D %%J IN (%%I\*) DO ( 
echo src: %1
echo dst: %%J
call %chk_copy% %1 %%J
FOR /D %%K IN (%%J\*) DO ( 
echo src: %1
echo dst: %%K
call %chk_copy% %1 %%K
)
)
)
)
)






:
[ 스크랩 문서입니다. ]
[[[ 파일은 없네요 ㅋㅋㅋㅋ ]] [[ 일단 공유 부탁을드렸으나, 안주실수도 있으니, 일단 만들어야지 ㅠ.ㅠ 다운로드 되는줄 알고 좋아했는데 ㅋㅋㅋㅋ ]

비슷한 프레임워크를 가진 여러 종류의 프로그램을 개발하다 보면 동일한 파일이 유사한 디렉터리에 존재하는 경우가 많습니다.

 

일일이 손으로 하나하나하나 복사를 하면 실수의 우려도 많고 작업시간도 많이 걸리지요.

 

이에 저는 직접 개발한 이지카피(Easy Copy) 다중 폴더 배치 복사 프로그램 솔루션을 활용하여 개발에 많은 도움을 얻고 있습니다.

 

 

스크린샷

 

아래와 같이 유사한 데이터 파일이 존재하는경우에 주로 사용합니다.

 

 

프로그램의 모습

 




http://a.tk.co.kr/693







: