728x90
반응형

(1) tar 명령어

 

목적: 사용자 및 시스템의 데이터를 테이프나 디스크에 저장하기 위한 명령어입니다. 저장된 데이터를 아카이브(Archive)라 합니다.

 

구문:
tar { -c | -r | -t | -u | -x } [ -b Blocks ] [ -B ] [ -d ] [ -F ] [ -h ] [ -i ] [ -L InputList ] [ -l ] [ -m ] [ -N Blocks ][ -o ] [ -p ] [ -s ] [ -v ] [ -w ] [ -Number ] [ -f Archive ] [ -S Blocksb | -S Feet | -S Feet@Density ] [ File | Directory | -C Directory ] ...

 

플래그


tar 명령에는 필수 플래그와 선택적 플래그의 두 플래그 그룹이 있습니다. tar 명령을 제어하려면 필수 플래그를 하나 이상 지정해야 합니다.

 

필수 플래그


-c 새 아카이브를 작성하여 그 아카이브 사본의 맨 앞에 하나 이상의 파일 매개변수에 지정한 파일을 기록합니다.


-r 아카이브 사본의 맨 뒤에 하나 이상의 File 매개변수에 지정한 파일을 기록합니다. 이 플래그는 테이프 장치에는 유효하지 않습니다. 그 이유는 테이프 장치는 테이프 맨 뒤에 정보를 추가하는 기능을 지원하지 않기 때문입니다.


-t 아카이브에 나타나는 순서로 파일들을 나열합니다. 파일이 한번 이상 나열될 수 있습니다.


-u 파일이 아카이브 사본에 아직 없거나 아카이브 사본에 파일을 쓴 후 수정을 한 경우에만 하나 이상의 파일 매개변수에 지정한 파일을 아카이브 사본 맨 뒤에 추가합니다. -u 플래그는 테이프 장치에 유효하지 않습니다. 그 이유는 테이프 장치는 테이프 맨 뒤에 정보를 추가하는 기능을 지원하지 않기 때문입니다.


-x 아카이브 사본에서 하나 이상의 File 매개변수에 지정한 파일들을 발췌합니다.
File 매개변수에 디렉토리를 지정하면 tar 명령은 아카이브 테이프에서 해당 디렉토리를 반복 적으로 발췌합니다. File 매개변수를 지정하지 않을 경우, tar명령은 아카이브 테이프에서 모든 파일을 발췌합니다. 한 파일의 사본 여러 개가 아카이브 테이프에 들어 있을 경우, 마지막으로 발췌된 사본을 앞서 발췌된 모든 사본 위에 겹쳐쓰기됩니다. 발췌하고 있는 파일이 아직 시스템에 없으면 파일이 작성됩니다. 적절한 사용권한을 갖고 있을 경우, tar 명령은 모든 파일과 디렉토리들을 테이프에서 갖는 것과 동일한 소유자 및 그룹 ID로 복원합니다.
사용자에게 해당 사용권한이 없을 경우, 파일과 디렉토리들은 사용자의 소유자 및 그룹 ID로 복원됩니다. 최종 파일 이외에 다른 파일 발생을 요청하는 것을 불가능합니다.

 

선택적 플래그


-B 레코드마다 20개의 블록으로 입출력 블록을 강제로 만듭니다. 이 옵션을 사용하면 tar 명령이 블록화가 유지되지 않을 수 있는 통신 채널을 통해 작업을 할 수 있습니다.


-b블록 레코드당 512 바이트 블록의 수를 지정합니다. 디폴트와 최대값 모두 테이프 레코드에 적합한 20입니다. 레코드 사이 갭의 크기 때문에 큰 블록화 인자로 쓰여진 테이프는 레코드당 한 블록만이 있는 테이프보다 많은 자료를 보유할 수 있습니다. 블록의 크기는 테이프를 읽을 때 자동으로 결정됩니다 (-x 또는 -t 기능 플래그). -u 및 -r 기능으로 아카이브 테이프를 갱신하면 기존의 레코드 크기를 그대로 사용합니다. tar 명령은 -c 플래그로 새 아카이브를 만들 때만 Blocks 매개변수에 지정한 값을 사용하여 보존 내용을 기록합니다.


-f 플래그를 사용하여 보통 파일로 출력을 하는 경우, 디스크 블록의 크기와 일치하는 블록 인자(예: 2048 바이트 디스크 블록에 -b4 플래그)를 사용하여 디스크 공간을 절약할 수 있습니다.


-C Directory tar 명령이 chdir 서브루틴을 directory 변수에 지정한 디렉토리에 수행하게 합니다. -C 플래그를 사용할 경우, 단축 상대 경로명을 사용하여 가까운 공통 모(parent)로 관련되지 않은 여러 디렉토리를 보존(archive)할 수 있습니다. 예를 들어, /usr/include 및 /etc 디렉토리에서 파일을 보존하려는 경우, 다음 명령을 사용할 수 있습니다.


tar c -C /usr/include File1 File2 -C /etc File3 File4


-CDirectory 플래그는 다른 모든 플래그 다음에 나타나야 하고 주어진 파일명 리스트에 표시될 수 있습니다.


-d 블록 파일, 특수 파일 및 FIFO(선입선출법) 파이프 처리를 위한 개별 항목들을 만듭니다. 일반적으로 tar 명령이 이러한 특수 파일을 보존(archive)하지는 않습니다. -d 플래그를 지정하여 아카이브 매체에 기록을 할 경우, tar 명령은 -x 플래그로 공백의 디렉토리, 특수 파일 및 FIFO(선입선출법) 파이프 프로세스의 복원을 가능하게 합니다.


-F 보존(archive)을 하기 전에 파일을 검사합니다. 소스 코드 제어 시스템(SCCS), 개정 제어 시스템(RCS), 파일 core, errs, a.out, 그리고 .o(도트 o)로 끝나는 파일은 보존되지 않습니다.


-f Archive Archive 변수를 읽거나 쓸 아카이브 매체로서 사용합니다. 이 플래그를 지정하지 않을 경우, tar 명령은 /dev/rmt0 형태의 시스템 종속 디폴트 파일명을 사용합니다. 지정한 Archive 변수가 -(빼기 기호)일 경우, tar 명령은 표준 출력에 출력을 하거나 표준 입력으로부터 읽습니다. 표준 출력에 쓰려면 -c 플래그를 반드시 사용해야 합니다.


-h tar 명령이 기호 링크가 정상 파일 또는 디렉토리인 것처럼 기호 링크들을 따릅니다. tar 명령은 보통 기호 링크를 따르지 않습니다.


-i 헤더 체크섬 오류를 무시합니다. tar 명령이 각 파일의 체크섬을 포함하는 파일 헤더를 아카이브에 기록합니다. 이 플래그를 지정하지 않을 경우, 시스템이 체크섬을 다시 계산하여 헤더 블록의 내용을 검증한 후 불일치가 발생할 때 디렉토리 체크섬 오류로 종료합니다. 이 플래그를 지정할 경우에 tar 명령은 오류들을 기록한 후 유효한 헤드 블록을 찾을 때까지 정방향으로 검색합니다.


-L InputList InputList 변수에 나열한 파일과 디렉토리를 아카이브에 기록합니다. InputList 변수의 디렉토리들은 반복적으로 처리되지 않습니다. InputList 변수에 들어 있는 디렉토리의 경우, tar 명령은 그 디렉토리에 종속된 파일과 부 디렉토리가 아닌 바로 그 디렉토리에만 기록합니다. 명령 행에서 InputList 변수 다음에 파일과 디렉토리들이 추가로 더 나오는 경우, InputList 변수의 내용이 해당 파일과 디렉토리 뒤에 보존(archive)됩니다. 추가로 나오는 파일이나 디렉토리는 디폴트 방식, 즉 반복처리 방법으로 보존됩니다.


-l 링크 계수가 1보다 크고 아직 보존되지 않은 링크가 있는 각 파일에 대한 오류 메세지를 표준 출력에 기록합니다. 예를 들어, file1과 file2가 서로 하드 링크되어 있는데 그 중 file1만을 아카이브에 넣으면 -l 플래그가 오류 메세지를 표시합니다. -l 플래그를 지정하지 않으면 오류 메세지가 표시되지 않습니다.


-m 발췌 시간을 수정 시간으로 사용합니다. 디폴트는 파일의 수정 시간을 보존하는 것입니다.


-N Blocks tar 명령이 스트림 테이브 아카이브를 처리할 때 매우 큰 클러스터 블록을 사용할 수 있게 합니다. 그러나 입력시 이 플래그에 의해 만들어진 매우 긴 블록 크기를 갖는 테이프의 블록 크기를 tar 명령이 자동으로 결정할 수 없습니다.  -N Blocks 플래그가 없을 경우, tar 명령이 자동으로 결정할 수 있는 최대 블록 크기는 20 블록입니다.


-o 이전 버전(비AIX)의 tar 명령과의 역방향 호환성을 제공 합니다. 읽기 조작에 이 플래그를 사용할 경우, 발췌된 파일이 아카이브에 있는 것이 아니라 사용자가 수행중인 프로그램에 있는 사용자 및 그룹 ID(UID 및 GID)를 사용합니다. 이것은 일반 사용자를 위한 디폴트 조치입니다.


-p 현재의 파일 모드 생성 마스크를 무시하고 원래 모드로 필드들을 복원하도록 지시합니다. setuid, setgid 및 tacky 비트 사용권한도 루트 사용자 권한을 갖는 사용자에게 복원됩니다.


-s tar 명령이 -s 플래그로 두 파일의 링크(정상 링크)를 시도하다 실패한 경우에 기호 링크의 작성을 시도합니다.


-S Blocksb, -S Feet, -S Feet @Density
테이프 블록화 인수에 관계없이 볼륨마다 512KB 블록의 수를 지정합니다(첫번째 형태). tar 명령이 디폴트 Density 변수로 가정하는 경우, 테이프 크기를 두 번째 양식을 사용하여 피트 단위로 지정할 수도 있습니다. 세 번째 양식을 사용할 경우 테이프의 길이와 밀도를 모두 지정할 수 있습니다. 피트는 11 인치로 간주됩니다. 이 플래그를 사용하면 복수 볼륨 테이프 아카이브를 보다 쉽게 다룰 수 있는데, 이러한 볼륨에서는 tar 명령이 각 볼륨에 적합한 블록의 수를 결정할 수 있어야 합니다.


-v 파일을 처리할 때마다 파일명을 나열합니다. -t 플래그를 사용할 경우, -v가 테이프 항목에 대한 추가 정보를 제공하는데, 그 정보에는 파일 크기, 최종 수정 시간, 사용자 번호(UID), 그룹 번호(GID) 및 사용 권한이 포함됩니다.


-w 취할 조치를 그 뒤에 파일명과 함께 표시한 후 사용자의 확인을 기다립니다. 응답이 긍정적이면 조치를 실행합니다. 응답이 부정적이면 파일이 무시됩니다.


-Number 디폴트 파일 대신 /dev/rmtNumber 파일을 사용합니다. 예를 들어, -2 플래그는 -f/dev/rmt2 파일과 동일합니다.

  

[ 예제 ]
- file1 및 file2 이 두 파일을 디폴트 테이프 드라이브의 새 아카이브에 쓰려면 다음과 같이 입력하십시오.
tar -c file1 file2


- /dev/rtm2 테이프 장치에 있는 보존(archive) 파일에서 /tmp 디렉토리의 모드 파일을 발췌하고 그 발췌 시간을 수정 시간으로 사용하려면 다음과 같이 입력하십시오.
tar -xm -f/dev/rmt2 /tmp


- file1 파일을 포함하는 새 보존(archive) 파일을 만들어 만든 보존 파일을 dd명령으로 전달하여 /dev/rmt1 장치에 기록하려면 다음과 같이 입력하십시오.
 tar -cvf - file1 | dd of=/dev/rmt1 conv=sync


- 현재 디렉토리의 out.tar 디스크 보존(archive) 파일 에 있는 파일들의 이름을 표시하려면 다음과 같이 입력하십시오.
 tar -vtf out.tar


- 압축된 tar 보존 파일 fil.tar.z 을 확장한 후, 파일을 tar 명령으로 전달하여 확장된 tar 보존 파일에서 모든 파일을 발췌하려면 다음과 같이 입력하십시오.
zcat fil.tar.Z | tar -xvf -


- 축약 상대 경로명을 사용하여 /usr/include 및 /usr/bin 파일의 내용을 보존(archive)하려면 다음과 같이 입력하십시오.
     cd /usr
     tar -cvf/dev/rmt0 -C./include . -C ../bin .


- -S 플래그를 사용하여 8 밀리미터 장치에 보존(archive)하려면 다음과 같이 입력하십시오.
     tar -cvf /dev/rmt0 -S 4800000b /usr

 

 

(2) dd 명령어

 

목적: 파일을 변환 및 복사합니다.

구문:
dd [ cbs=BlockSize ] [ count=InputBlocks ] [ files=InputFiles ] [fskip=SkipEOFs ] [ if=InFile ] [ of=OutFile ] [ seek=RecordNumber ] [skip=SkipInputBlocks ] [ ibs=InputBlockSize ] [ obs=OutputBlockSize ] [bs=BlockSize ] [ conv= [ ascii | block | ebcdic | ibm | unblock ] [ lcase |ucase ] [ iblock ] [ noerror ] [ swab ] [ sync ] [ oblock ] [ notrunc ] ]

dd [ Option=Value ]

 

플래그
- bs=BlockSize ibs 및 obs 플래그를 대체하는 입력 및 출력 블록 크기를 지정합니다. bs 플래그로 지정된 블록 크기 값은 사용되는 미디어에 대한 물리적 블록 크기의 배수여야 합니다.


- cbs=BlockSize conv=block처럼 가변 길이를 고정 길이로, 그리고 고정 길이를 가변 길이로 변환하기 위한 변환 블록 크기를 지정합니다.


- count=InputBlocks InputBlocks 변수가 지정한 입력 블록의 수만을 복사합니다.


- files=InputFiles 끝내기 전에 입력 파일의 InputFiles 변수 값이 지정한 파일의 수를 복사합니다(입력이 마그네틱 테이프나 유사한 장치에서 실행되는 경우를 말합니다).


- fskip=SkipEOFs 복사를 시작하기 전에 SkipEOFs 변수가 지정한 파일의 끝 문자만큼 건너뜁니다. 이 SkipEOFs 변수는 복수 파일 마그네틱 테이프상에 위치를 지정할 때 유용합니다.


- ibs=InputBlockSize 입력 블록의 크기를 지정합니다. 디폴트 값은 512바이트 또는 하나의 블록입니다. ibs 플래그로 지정된 블록 크기 값은 사용되는 미디어에 대한 물리적 블록 크기의 배수여야 합니다.


- if=InFile 입력 파일명을 지정합니다. 표준 입력 파일은 디폴트 파일입니다.


- obs=OutputBlockSize 출력 블록의 크기를 지정합니다. 디폴트 값은 512바이트 또는 하나의 블록입니다. obs 플래그로 지정된 블록 크기 값은 사용되는 미디어에 대한 물리적 블록 크기의 배수여야 합니다.


- of=OutFile 출력 파일명을 지정합니다. 표준 출력 파일이 디폴트 파일입니다.


- seek=RecordNumber 복사를 하기 전에 RecordNumber 변수가 지정한 레코드를 출력 파일의 맨 처음부터 탐색합니다.


- skip=SkipInputBlocks 복사를 시작하기 전에 지정된 입력 블록의 SkipInputBlocks 값을 건너뜁니다.


- conv= Conversion,.... 하나 이상의 변환 옵션을 지정합니다. 여러 개의 변환을 지정할 때는 쉼표로 각각을 구분해야 합니다. 다음 리스트에서 가능한 옵션을 설명합니다.


- ascii EBCDIC를 ASCII로 변환합니다. 이 옵션은 ebcdic, ibm, block 및 unblock 옵션과 같이 사용할 수 없습니다.


- block 가변 길이 레코드를 고정 길이 레코드로 변환합니다. 그 길이는 변환 블록 크기(cbs)가 결정합니다. 이 옵션은 ascii, ebcdic, ibm 및 unblock 옵션과 같이 사용할 수 없습니다.


- ebcdic ASCII를 표준 EBCDIC로 변환합니다. 이 옵션은 ascii, ibm, block 및 unblock 옵션과 같이 사용할 수 없습니다.


- ibm ASCII를 IBM 버전 EBCDIC로 변환합니다. 이 옵션은 ascii, ebcdic, block 및unblock 옵션과 같이 사용할 수 없습니다.


- iblock, oblock 직접 액세스 장치상의 읽기 및 쓰기 오류로 인해 발생하는 자료 손실을 최소화합니다. iblock 변수를 지정하고 블록 읽기(블록 크기가 512바이트이거나 ibs=InputBlockSize 변수가 지정한 크기인 경우)를 하는 동안 오류가 발생하는 경우, dd 명령은 보다 작은 단위로 자료 블록 읽기를 재시도합니다.


- dd 명령이 입력 장치의 섹터 크기를 결정할 수 있는 경우에, 이 명령은 손상된 블록을 한 번에 한 섹터씩 읽어들입니다. 또는 블록을 한 번에 512바이트씩 읽습니다. 입력 블록 크기(ibs)는 이러한 재시도 크기의 배수 크기여야 합니다. 이 옵션은 단일 섹터로 읽기 오류와 연관된 자료 손실을 포함합니다. oblock 변환은 출력에 대해서도 유사하게 작용합니다.


- lcase 모든 영문자를 소문자로 만듭니다.


- noerror 오류시에도 처리를 중단하지 않습니다.


- notrunc 출력 파일을 절단하지 않습니다. 그 대신 출력에 명시적으로 쓰여지지 않은 블록들을 보존합니다.


- ucase 모든 영문자를 대문자로 만듭니다.


- swab 모든 바이트 쌍을 서로 교환합니다.


- sync 모든 입력 블록을 ibs 값까지 채웁니다.


- unblock 고정 길이 블록을 가변 길이로 변환합니다. 그 길이는 변환 블록 크기(cbs)가 결정합니다. 이 옵션은 ascii, ebcdic, ibm, 및 와 같이 사용할 수 없습니다.

 


[ 예제 ]
- ASCII 텍스트 파일을 EBCDIC로 변환하려면 다음과 같이 입력하십시오.
dd if=text.ascii of=text.ebcdic conv=ebcdic
이 명령은 text.ascii 파일을 EBCDIC 표현으로 변환하는데, 변환되는 EBCDIC 버전은 text.ebcdic 파일에 저장됩니다.


- 가변 길이 레코드 ASCII 파일 /etc/passwd를 132바이트의 고정 길이 EBCDIC 레코드로 변환하려면 다음과 같이 입력하십시오.  
     dd if=/etc/passwd cbs=132 conv=ebcdic of=/tmp/passwd.ebcdic


- 레코드당 132바이트 EBCDIC 파일을 가변 길이 ASCII 행에 소문자로 변환하려면 다음과 같이 입력하십시오.   
  dd if=/tmp/passwd.ebcdic cbs=132 conv=ascii of=/tmp/passwd.ascii


- 가변 길이 레코드 ASCII 파일 /etc/passwd를 IBM 버전의 132바이트 고정 길이 레코드 EBCDIC로 변환하려면 다음과 같이 입력하십시오.
dd if=/etc/passwd cbs=132 conv=ibm of=/tmp/passwd.ibm


- 블록을 1KB 블록 테이프에서 2KB 블록을 사용하는 다른 테이프로 복사하려면 다음과 같이 입력하십시오.
dd if=/dev/rmt0 ibs=1024 obs=2048 of=/dev/rmt1


- dd 명령을 필터로 사용하려면 다음과 같이 입력하십시오.   
li -l | dd conv=ucase
이 명령은 현재 디렉토리의 긴 리스트를 대문자로 표시해줍니다.


- 512바이트의 36개 블록을 사용하는 3.5인치 1.4MB 디스켓으로 효과적인 전송을 수행하려면 다음과 같이 입력하십시오.
    dd if=Filename of=/dev/rfd0 bs=36b conv=sync
이 명령은 Filename 매개변수의 값을 디스켓 장치에 한 번에 한 실린더씩 씁니다. 디스크로부터 읽기를 수행할 때와 파일의 크기가 디스켓 블록 크기의 배수가 아닐 때는 conv=sync 가 필요합니다. dd 명령에 대한 입력이 파일 대신에 파이프일 경우에는 이를 시도하지 마십시오. 이것은 대부분의 입력을 마지막 블록이 아닌 널(null)로 채웁니다.

 

 


(3) mt 명령어

 

목적: 마그네틱(Magnetic) 테이프 드라이버를 조정하기 위해 사용한다.
사용법:  mt  command
명령어 사용법:
fsf  n :  forward space count files
bsf  n : backward space count files
rewind : Rewind the tape
ret : Retension the tape
status : Print status information about the tape unit
feom : 테이프에 파일을 추가할 수 있는 장소로 이동한다.

[/home] mt  ret
[/home] mt  rewind
[/home] mt  -f  /dev/rmt0  sf  1
[/home] mt  -f  /dev/rmt0  bsf  1
[/home] mt  -f  /dev/rmt0  feom

 


(4) fsck (File System ChecK) 명령어

 

목적: 유닉스 시스템은 메모리와 해당 파일시스템의 수퍼 블록(Super Block)에 파일시스템에 관한 정보를 유지하고 있고, 이 정보는 항상 일치하도록 유지하여야 하나 시스템이 정상적으로 다운되지 않은 등의 부적당한 경우에는 메모리와 수퍼 블록에 보관중인 내용이 불일치된 disk의 내용을 조사하여 정상적으로 복구시켜주는 명령어이다. 이러한 불일치를 가능한 방지하기 위하여 메모리의 정보를 디스크의 수퍼 블록과 일치시키는 명령어인 "sync"라는 명령어를 시스템 사용중 적당히 사용할 수도 있다.


파일시스템이 umount되어있고 가능한 싱글 사용자 모드(Single User Mode)에서 사용한다.
사용법:  fsck  filesystem명


[/home] fsck  -y  /home

** /dev/rhd1 점검중.(/home)
** 1 단계 - 블록 및 크기 점검
** 2 단계 - 경로 이름 점검
** 3 단계 - 연결성 점검
** 4 단계 - 참조 계수 점검
** 5 단계 - i-노드 맵 점검
** 6 단계 - 블록 맵 점검
1499개 파일 367972개 블록 1237660개 사용가능

 


(5) mount & umount

 

목적: 제거 가능한 파일구조(파일시스템)가 Special-Device상에 올려서 데이터를 실제로 읽고 쓸수 있도록 시스템에게 알려준다. 마운트될 디렉토리는 이미 존재하는 빈 디렉토리로 새로운 파일구조의 TOP이 된다. Umount 명령어는 이전에 디바이스인 Special-Device에 마운트된 파일구조(파일시스템)를 제거한다.
사용법:  mount   파일시스템이름  디렉토리

[/home] mount /home
[/home] umount /home
[/home] mount  /dev/hd1  /home

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,