리눅스 운영체제는 모든 것을 (일반, 특수) 파일로 인식하고 처리한다.
file
: file type 정의하는 명령어
파일의 종류
이름 | 설명 |
---|---|
d | directory |
- | file |
l | soft(symbolic) link |
c | charcter device |
b | block device |
s | socket |
p | namepipe |
일반 파일과 특수 파일 종류
일반 | 특수 |
Text, binary | Directory, Block 형 / Char 형 (장치 파일에 따라) |
1.
j15@ace:~/d3$ file d300
d300: directory
2.
j15@ace:~/d3$ file /
/: directory
3.
j15@ace:~/d3$ file /etc/
/etc/: directory
4.
j15@ace:~/d3$ file /tmp/
/tmp/: sticky, directory
5.
j15@ace:~/d3$ ll
합계 64
drwxrwxr-x 2 j15 j15 4096 4월 26 10:04 ./
drwxr-x--- 8 j15 j15 4096 4월 26 10:04 ../
1. - type으로 file 찾기
j15@ace:~/d3$ find /dev/httpd -type f -exec ls -al {} \; 2>/dev/null
2.
1. - type으로 link 찾기
j15@ace:~/d3$ find /run -type s -exec ls -al {} \; 2>/dev/null
srw-rw---- 1 smmta smmta 0 4월 26 09:20 /run/sendmail/mta/smcontrol
,,,
srw------- 1 j15 j15 0 4월 26 09:25 /run/user/1016/gnupg/S.gpg-agent
2.
15@ace:~/d3$ file /etc/vtrgb
/etc/vtrgb: symbolic link to /etc/alternatives/vtrgb
1.
j15@ace:~/d3$ file /dev/tty
/dev/tty: character special (5/0)
2.
j15@ace:~/d3$ ls -l /dev/tty
crw-rw-rw- 1 root tty 5, 0 4월 26 09:57 /dev/tty - 앞자리(c) 확인
1.
j15@ace:~/d3$ file /dev/sr0
/dev/sr0: block special (11/0)
2. - ls로 block type 찾기
j15@ace:~/d3$ ls -l /dev/sr0
brw-rw---- 1 root cdrom 11, 0 4월 26 09:19 /dev/sr0 - 앞자리(b) 확인
1.
j15@ace:~/d3$ file /run/systemd/journal/dev-log
/run/systemd/journal/dev-log: socket
2. - type으로 socket 찾기
j15@ace:~/d3$ find /run -type s -exec ls -AlF {} \; 2>/dev/null
srw-rw---- 1 smmta smmta 0 4월 26 09:20 /run/sendmail/mta/smcontrol=
srwxrwxrwx 1 mysql mysql 0 4월 26 09:19 /run/mysqld/mysqld.sock=
srwxrwxrwx 1 mysql mysql 0 4월 26 09:19 /run/mysqld/mysqlx.sock=
srw-rw-rw- 1 root root 0 4월 26 09:19 /run/uuidd/request=
,,,
s--------- 1 root root 0 4월 26 09:19 /run/systemd/inaccessible/sock=
srw------- 1 root root 0 4월 26 09:19 /run/udev/control= -앞자리(s) 확인
1.
j15@ace:~/d3$ file /run/systemd/sessions/119.ref
/run/systemd/sessions/119.ref: fifo (named pipe)
2. - type으로 pipe 찾기
j15@ace:~/d3$ find /run -type p -exec ls -AlF {} \; 2>/dev/null
p--------- 1 j15 j15 0 4월 26 09:25 /run/user/1016/systemd/inaccessible/fifo|
,,, -앞자리(p) 확인
prw------- 1 root root 0 4월 26 10:01 /run/systemd/sessions/100.ref|
j15@ace:~/d3$ find /run -type p -exec ls -AlF {} \; 2>/dev/null
p--------- 1 j15 j15 0 4월 26 09:25 /run/user/1016/systemd/inaccessible/fifo|
,,,
prw------- 1 root root 0 4월 26 10:01 /run/systemd/sessions/102.ref|
prw------- 1 root root 0 4월 26 10:01 /run/systemd/sessions/101.ref|
prw------- 1 root root 0 4월 26 10:01 /run/systemd/sessions/100.ref|
3.
j15@ace:~/d3$ mkfifo aa - aa(named) pipe 생성
j15@ace:~/d3$ file aa
aa: fifo (named pipe)
j15@ace:~/d3$ file b.c
b.c: C source, Unicode text, UTF-8 text
Hard | soft |
---|---|
하나의 파일에 별칭 부여 = alias | 원본파일에 대해 위치정보 가짐 |
c++의 reference와 같은 개념 | window의 바로가기 아이콘와 같은 개념 |
= symbolic link |
j15@ace:~/d3$ b - c 언어로 코딩된 파일
c언어가 짱인가?...?
j15@ace:~/d3$ bb - b 파일 복사본
c언어가 짱인가?...?
j15@ace:~/d3$ ls -l
합계 36
-rwxrwxr-x 1 j15 j15 15960 4월 26 10:04 b
-rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
-rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
j15@ace:~/d3$ ln b lb - b로 연결될 Hard 링크 생성
j15@ace:~/d3$ ls -l
합계 52
-rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 b
-rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
-rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
-rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 lb
j15@ace:~/d3$ lb - 지정된 링크로 연결된 모습
c언어가 짱인가?...?
j15@ace:~/d3$ alias li='ls -Ali' -alias로 단축어 생성하여 코딩의 편리함 추가
j15@ace:~/d3$ li
합계 52
393426 -rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 b
393431 -rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
393329 -rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
393426 -rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 lb
└> 인덱스 넘버로써 같은 링크가 연결됨을 확인할 수 있음
j15@ace:~/d3$ ln b lb2 - 인덱스 넘버 증가를 확인하기 위해 한번 더 실행
j15@ace:~/d3$ li
합계 68
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 b
393431 -rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
393329 -rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 lb
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 lb2
j15@ace:~/d3$ ln -s b sb - symbolic 링크 생성
j15@ace:~/d3$ li
합계 68
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 b
393431 -rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
393329 -rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 lb
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 lb2
393427 lrwxrwxrwx 1 j15 j15 1 4월 26 11:06 sb -> b
j15@ace:~/d3$ file sb - symbolic 링크 임을 확인
sb: symbolic link to b
j15@ace:~/d3$ sb - 지정된 링크로 연결된 모습
c언어가 짱인가?...?
j15@ace:~/d3$ ln -s /usr/local/ 66 - symbolic 링크 생성
j15@ace:~/d3$ li
합계 68
393434 lrwxrwxrwx 1 j15 j15 11 4월 26 11:08 66 -> /usr/local/ - 생성됨을 확인
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 b
393431 -rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
393329 -rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 lb
393426 -rwxrwxr-x 3 j15 j15 15960 4월 26 10:04 lb2
393427 lrwxrwxrwx 1 j15 j15 1 4월 26 11:06 sb -> b
└> 인덱스 넘버 확인
j15@ace:~/d3$ rm -f b - 링크 원본 삭제 과정
j15@ace:~/d3$ li
합계 52
393431 -rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
393329 -rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
393426 -rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 lb
393426 -rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 lb2
393427 lrwxrwxrwx 1 j15 j15 1 4월 26 11:06 sb -> b
j15@ace:~/d3$ file sb
sb: broken symbolic link to b - 링크가 깨짐을 확인
j15@ace:~/d3$ li
합계 52
393431 -rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
393329 -rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
393426 -rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 lb
393426 -rwxrwxr-x 2 j15 j15 15960 4월 26 10:04 lb2
393427 lrwxrwxrwx 1 j15 j15 1 4월 26 11:06 sb -> b
└> 처음 생성했을때 보다 인덱스 넘버 다운됨
j15@ace:~/d3$ lb
c언어가 짱인가?...?
j15@ace:~/d3$ lb2
c언어가 짱인가?...?
- hard 링크는 실행은 가능!
j15@ace:~/d3$ unlink b - 링크 해제명령어
j15@ace:~/d3$ li
합계 36
393431 -rw-rw-r-- 1 j15 j15 92 4월 26 10:01 b.c
393329 -rwxrwxr-x 1 j15 j15 15960 4월 26 11:02 bb
393426 -rwxrwxr-x 1 j15 j15 15960 4월 26 10:04 lb2
393427 lrwxrwxrwx 1 j15 j15 1 4월 26 11:06 sb -> b - 사진으로 색 변화 확인
결론
- hard link : 파일만 가능, 동일 파일 시스템에서만 가능
아무리 많아도 용량을 차지하지 않는다.
결론 2
- soft link : 파일, 디렉터리 모두 가능, 다른 파일 시스템도 가능
문제) a = 40 byte일때 x는 몇 byte일까?
1 #include <stdio.h> 2 void f(int* x) //int x[10], int x[] 4 printf("x = %d byte \n", sizeof(x)); 5 } 6 7 int main(void) 8 { 9 int a[10] = {0, }; 10 printf(" a = %d byte \n", sizeof(a)); 11 f(a); 12 return 0; 13 }
정답) x = 8 byte
이유) x = 64bit com의 메모리의 주소를 가르키는 C언어의 포인터 값
명령어 해석 순서
alias > keyword > function > builtin > 외부명령어
compgen
: 옵션에 맟는 bash모음 출력
j15@ace:~/d3$ compgen -a | column -a:alias
alert egrep fgrep grep h l la li ll ls
j15@ace:~/d3$ compgen -b | column -b:bultins = enable
. cd echo getopts mapfile set type
: command enable hash popd shift typeset
[ compgen eval help printf shopt ulimit
alias complete exec history pushd source umask
bg compopt exit jobs pwd suspend unalias
bind continue export kill read test unset
break declare false let readarray times wait
builtin dirs fc local readonly trap
caller disown fg logout return true
[root@nc7 ~]# compgen -c | column -c:command
c rm
cp i386
dc cpio
df who
di cmp
dq rmdir
du diff
egrep runcon
fgrep diff3
grep seq
h last
j15@ace:~/d3$ compgen -k | column -k:keyword
if fi select done { ]]
then case while in } coproc
else esac until function !
elif for do time [[
1.
j15@ace:~/d3$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
,,,
helper:/:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin
blue:x:1000:1000::/home/blue:/bin/bash
j15@ace:~/d3$ tac /etc/passwd
blue:x:1000:1000::/home/blue:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin
flatpak:x:988:988:User for flatpak system
,,,
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
- tac은 cat의 역순 출력
2.
j15@ace:~/d3$ ls -l /var/log | sort
-rw-r----- 1 root adm 14190 12월 30 13:56 dmesg.2.gz
-rw-r----- 1 root adm 14284 12월 30 09:29 dmesg.3.gz
-rw-r----- 1 root adm 14340 12월 29 17:21 dmesg.4.gz
-rw-r----- 1 root adm 14476 4월 24 12:07 dmesg.1.gz
-rw-r----- 1 root adm 19535 4월 26 09:20 cloud-init-output.log
└> 파일 사이즈
wc
: 문서의 행과 단어 그리고 문자의 개수를 카운트하고 출력1.
j15@ace:~/d3$ wc /etc/services
361 1773 12813 /etc/services
j15@ace:~/d3$ wc -l /etc/services - 문서 행
361 /etc/services
j15@ace:~/d3$ wc -w /etc/services - 문서 단어
1773 /etc/services
j15@ace:~/d3$ wc -c /etc/services - 문서 개수
12813 /etc/services
2.
j15@ace:~/d3$ ls -l /var/log | sort -n -k 5 - 용량 크기별로 올림차순
-rw-r--r-- 1 root root 0 8월 9 2022 ubuntu-advantage.log
-rw-rw---- 1 root utmp 0 8월 9 2022 btmp.1
합계 4788
-rw-r--r-- 1 root root 314 12월 30 09:35 ubuntu-advantage-timer.log.1
-rw-r--r-- 1 root root 631 4월 26 09:41 ubuntu-advantage-timer.log
-rw-r--r-- 1 root root 841 4월 25 18:33 fontconfig.log
,,,
-rw-r----- 1 root adm 14476 4월 24 12:07 dmesg.1.gz
3.
j15@ace:~/d3$ sort -t: -k3 p | nl - 3번쨰 ip를 정수로 인식하여 오름차순
1 root:x:0:0:root:/root:/bin/bash
2 j:x:1000:1000:j:/home/j:/bin/bash
3 ace:x:1001:1001::/home/ace:/bin/bash
4 j1:x:1002:1003::/home/j1:/bin/bash
5 j2:x:1003:1004::/home/j2:/bin/bash
,,,
18 j14:x:1015:1016::/home/j14:/bin/bash
19 j15:x:1016:1017::/home/j15:/bin/bash
20 j16:x:1017:1018::/home/j16:/bin/bash
└> 3번쨰 ip
1.
j15@ace:~/d3$ grep http s
# Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
http 80/tcp www # WorldWideWeb HTTP ★
https 443/tcp # http protocol over TLS/SSL
https 443/udp # HTTP/3
http-alt 8080/tcp webcache # WWW caching service
2.
j15@ace:~/d3$ grep ftp s
ftp-data 20/tcp
ftp 21/tcp ★
tftp 69/udp
ftps-data 989/tcp # FTP over SSL (data)
ftps 990/tcp
venus-se 2431/udp # udp sftp side effect
codasrv-se 2433/udp # udp sftp side effect
gsiftp 2811/tcp
zope-ftp 8021/tcp # zope management by ftp
3.
j15@ace:~/d3$ grep pop3 s
pop3 110/tcp pop-3 # POP version 3 ★
pop3s 995/tcp # POP-3 over SSL
4.
j15@ace:~/d3$ grep domain s
domain 53/tcp # Domain Name Server
domain 53/udp ★
domain-s 853/tcp # DNS over TLS [RFC7858]
domain-s 853/udp # DNS over DTLS [RFC8094]
5.
j15@ace:~/d3$ grep ftp s
ftp-data 20/tcp
ftp 21/tcp ★
tftp 69/udp
ftps-data 989/tcp # FTP over SSL (data)
ftps 990/tcp
venus-se 2431/udp # udp sftp side effect
codasrv-se 2433/udp # udp sftp side effect
gsiftp 2811/tcp
zope-ftp 8021/tcp # zope management by ftp
★ = 각 프로그램 port를 뜻함
1.
j15@ace:~/d3$ function aha() -함수 생성
> {
> echo "aha aha"
> }
j15@ace:~/d3$ aha
aha aha
2.
j15@ace:~/d3$ ahha()
> {
> echo "*******************"
> }
j15@ace:~/d3$
j15@ace:~/d3$ ahha
*******************
3.
j15@ace:~/d3$ cat << A >k2
> haha
> hoho
> A
4.
j15@ace:~$ whatis cp -명령어 뒤에 입력한 단어에 대한 요약 설명을 출력
cp (1) - copy files and directories
5.
j15@ace:~$ which cp - 명령어 뒤에 입력한 파일의 위치 출력
/usr/bin/cp
6.
j15@ace:~$ whereis cp - which랑 같은 뜻
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
1.
j15@ace:~/d3$ k="korea"
j15@ace:~/d3$ echo ${#k} -문자열 출력
5
2.
j15@ace:~/d3$ echo `expr length $k` -문자열 출력과 같은 뜻
5
3.
j15@ace:~/d3$ echo '$k' -문자 그대로 출력
$k
4.
j15@ace:~/d3$ echo "$k" - 공백을 포함하려면 ""로 생성
korea
5.
j15@ace:~/d3$ echo "$k
> { 이렇게 창이 뜸}
> ;
>
> "
6.
j15@ace:~/d3$ echo $k_seoul
(공백)
7.
j15@ace:~/d3$ echo ${k}_seoul
korea_seoul
8.
j15@ace:~/d3$ id - 가입된 user id와 그룹 id 출력
uid=1016(j15) gid=1017(j15) 그룹들=1017(j15)
9.
j15@ace:~/d3$ find / -uid 1016 2>/dev/null | nl - 가입된 user id 1016번 으로 검색
1 /run/user/1016
2 /run/user/1016/snapd-session-agent.socket
3 /run/user/1016/pk-debconf-socket
4 /run/user/1016/gnupg
5 /run/user/1016/gnupg/S.gpg-agent
6 /run/user/1016/gnupg/S.gpg-agent.ssh
7 /run/user/1016/gnupg/S.gpg-agent.extra
,,,
1469 /home/j15/k.sh
1470 /dev/pts/42
1471 /dev/pts/1
10.
j15@ace:~/d3$ cat << A > my.txt
> aaa
> aaa
> AAA
> bbb
> bbb
> bbb
> A
j15@ace:~/d3$ nl my.txt
1 aaa
2 aaa
3 AAA
4 bbb
5 bbb
6 bbb
j15@ace:~/d3$ uniq my.txt
aaa
AAA
bbb
j15@ace:~/d3$ uniq my.txt -i
aaa
bbb
j15@ace:~/d3$ uniq my.txt -i | sort -r
bbb
aaa
j15@ace:~/d3$ uniq my.txt -i | sort
aaa
bbb
1.
j15@ace:~/d3$ d=date
j15@ace:~/d3$ echo $d
date
2.
j15@ace:~/d3$ d=`date`
j15@ace:~/d3$ echo $d
2023. 04. 26. (수) 12:45:46 KST
j15@ace:~/d3$ expr 20+3
20+3
j15@ace:~/d3$ expr 20 \* 3 - 곱셈은 이렇게 표현
60
j15@ace:~/d3$ let k=2+7
j15@ace:~/d3$ echo $k
9 - echo 출력 필요
j15@ace:~/d3$ echo $[3*5] -곱셈의 또다른 표현
15
j15@ace:~/d3$ 2 * 3 -에러의 대표 사례
-bash: 2: command not found
1.
j15@ace:~/d3$ find / -size +100M -exec ls -Alh {} \; 2>/dev/null -100M 이상의 파일 찾아서 다음 명령 실행
-rw------- 1 root root 103M 12월 30 09:35 /var/lib/snapd/snaps/lxd_23541.snap
-rw------- 1 root root 112M 4월 24 12:13
,,,
/usr/lib/jvm/java-11-openjdk-amd64/lib/modules
-rw------- 1 root root 2.0G 12월 29 17:10 /swap.img
2.
j15@ace:~/d3$ find / -empty 2>/dev/null | more - 비어있는 파일 찾기
/run/needrestart
/run/unattended-upgrades.lock
,,,
/run/sendmail/stampdir/reload
/run/sendmail/msp
3.
j15@ace:~/d3$ find / -size +30M 2>/dev/null - 30M 이상의 파일 찾기
/var/cache/apt/srcpkgcache.bin
/var/cache/apt/pkgcache.bin
/var/lib/snapd/snaps/core20_1852.snap
/var/lib/snapd/snaps/lxd_23541.snap
/var/lib/snapd/snaps/lxd_24322.snap
/var/lib/snapd/snaps/snapd_17883.snap
-exec [command] {} \:; 문자
: 검색 후 특정 명령 수행1.
j15@ace:~/d3$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
j15@ace:~/d3$ echo {a..z} | tr 'a-z' 'A-Z'
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
j15@ace:~/d3$ echo {a..z} | tr 'kb' 'KB'
a B c d e f g h i j K l m n o p q r s t u v w x y z
2.
j15@ace:~/d3$ echo "zxzcvSDFEWRVSDFjasdf" | tr -d 'a-z'
SDFEWRVSDF
j15@ace:~/d3$ echo "3333333333333333333333333333" | tr -s '3'
3
3.
j15@ace:~/d3$ echo {a..z} | tr -d '' | cut -b 3
b
j15@ace:~/d3$ echo {a..z} | tr -d '' | cut -b 1-5
a b c
4.
j15@ace:~/d3$ shuf -e "kim" "ho" "il"
il
ho
kim
j15@ace:~/d3$ shuf -e "kim" "ho" "il"
ho
il
kim
j15@ace:~/d3$ shuf -e "kim" "ho" "il"
kim
ho
il
5.
j15@ace:~/d3$ shuf -i 1-30 | column
15 24 19 6 12 30 1 29 25 5
20 26 27 7 4 10 21 16 23 3
9 14 18 28 11 17 2 22 13 8
j15@ace:~/d3$ shuf -i 1-30 -n 6
5
17
7
9
24
8
7.
j15@ace:~/d3$ shuf -i 1-30 -n 6 | paste - - -
19 23 10
29 26 28
j15@ace:~/d3$ shuf -i 1-30 -n 6 | paste - - - - -
20 8 15 3 22
23
j15@ace:~/d3$ shuf -i 1-30 -n 6 | paste - - - - - -
18 17 30 7 3 5
j15@ace:~/d3$ shuf -i 1-30 -n 6 | paste - - - - - - > num12
j15@ace:~/d3$ nl num12
1 16 13 8 9 30 7
9.압축
압축 | 해제 |
---|---|
gzip | gunzip |
compress | uncompress |
bzip2 | bunzip2 |
xz | unxz |
j15@ace:~/d3$ alias lh='ls-Alh' - alias로 자주 사용하는 별칭 명령어 지정
j15@ace:~/d3$ gzip s - 압축실행
j15@ace:~/d3$ lh
합계 12K
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 5.3K 4월 26 14:44 s.gz - 생성된 gz 파일
j15@ace:~/d3$ gunzip s.gz -압축 해제
j15@ace:~/d3$ lh
합계 20K
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 13K 4월 26 14:44 s - 압축 해제된 모습
j15@ace:~/d3$ bzip2 s -압축실행
j15@ace:~/d3$ lh
합계 12K
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 5.1K 4월 26 14:44 s.bz2 - 생성된 bz2 파일
j15@ace:~/d3$ bunzip2 s.bz2 -압축 해제
j15@ace:~/d3$ lh
합계 20K
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 13K 4월 26 14:44 s -압축 해제된 모습
j15@ace:~/d3$ xz s -압축실행
j15@ace:~/d3$ lh
합계 12K
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 5.1K 4월 26 14:44 s.xz - 생성된 xz 파일
j15@ace:~/d3$ unxz s.xz -압축 해제
j15@ace:~/d3$ lh
합계 20K
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 13K 4월 26 14:44 s -압축 해제된 모습
11.ftp를 이용한 다룬 및 압축
옵션 | 설명 |
---|---|
c | create : 새로운 tart 파일 생성 |
x | extract : 추출하거나 풀기 |
v | verbose : 상태 출력 |
z | gzip, gunzip : 압축할때는 g, 압축풀때는 gun |
t | list : 실제로 압축을 풀지는 않고, 어떤 파일인지 출력 |
f | file : 필수 옵션 |
1.
j15@ace:~/d3$ tar cfz b.tar.gz httpd-2.4.57 - 압축해제하여 새로운 gz 파일 생성
j15@ace:~/d3$ lh
합계 29M
-rw-rw-r-- 1 j15 j15 9.4M 4월 26 15:01 a.tar.gz
-rw-rw-r-- 1 j15 j15 9.4M 4월 26 15:03 b.tar.gz - 생성 완료
drwxr-xr-x 13 j15 j15 4.0K 4월 3 01:05 httpd-2.4.57
-rw-rw-r-- 1 j15 j15 9.4M 4월 6 23:46 httpd-2.4.57.tar.gz
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 13K 4월 26 14:44 s
2.
j15@ace:~/d3$ tar xfz b.tar.gz - 묶음 해제
j15@ace:~/d3$ ls
a.tar.gz b.tar.gz httpd-2.4.57 httpd-2.4.57.tar.gz p s
j15@ace:~/d3$ lh
합계 29M
-rw-rw-r-- 1 j15 j15 9.4M 4월 26 15:01 a.tar.gz
-rw-rw-r-- 1 j15 j15 9.4M 4월 26 15:03 b.tar.gz
drwxr-xr-x 13 j15 j15 4.0K 4월 3 01:05 httpd-2.4.57
-rw-rw-r-- 1 j15 j15 9.4M 4월 6 23:46 httpd-2.4.57.tar.gz
-rw-r--r-- 1 j15 j15 3.5K 4월 26 14:44 p
-rw-r--r-- 1 j15 j15 13K 4월 26 14:44 s
j15@ace:~/d3$ tar cfz httpd-2.4.57/
tar: 빈 아카이브 만들기를 조심스럽게 거부하고 있습니다
자세한 정보는 'tar --help' 또는 'tar --usage'를 입력하십시오.
j15@ace:~/d3$ tar cfz b.tar.gz httpd-2.4.57/
3.
j15@ace:~/d3$ tar cfz myhome.tar.gz ~ 2>/dev/null
j15@ace:~/d3$ lh
합계 112M
-rw-rw-r-- 1 j15 j15 1.2M 4월 26 15:26 5.tar.gz
-rw-rw-r-- 1 j15 j15 9.4M 4월 26 15:08 b.tar.gz
drwxr-xr-x 13 j15 j15 4.0K 4월 3 01:05 httpd-2.4.57
-rw-rw-r-- 1 j15 j15 43M 4월 6 23:46 httpd-2.4.57.tar
-rw-rw-r-- 1 j15 j15 59M 4월 26 15:28 myhome.tar.gz
-rw-r--r-- 1 j15 j15 3.5K 4월 26 15:05 p
-rw-r--r-- 1 j15 j15 13K 4월 26 15:05 s
4.
j15@ace:~/d3$ tar cfJ b.tar.xz /etc/ 2>/dev/null - xz 툴로 생성
j15@ace:~/d3$ lh
합계 103M
-rw-rw-r-- 1 j15 j15 800K 4월 26 15:31 b.tar.xz
drwxr-xr-x 13 j15 j15 4.0K 4월 3 01:05 httpd-2.4.57
-rw-rw-r-- 1 j15 j15 43M 4월 6 23:46 httpd-2.4.57.tar
-rw-rw-r-- 1 j15 j15 59M 4월 26 15:28 myhome.tar.gz
-rw-rw-r-- 1 j15 j15 664K 4월 26 15:30 myhome.tar.xz
-rw-r--r-- 1 j15 j15 3.5K 4월 26 15:05 p
-rw-r--r-- 1 j15 j15 13K 4월 26 15:05 s
j15@ace:~/d3$ tar xfJv b.tar.xz 2>/dev/null - 생성된 xz파일 압축 해제
j15@ace:~/d3$ ls
b.tar.xz etc httpd-2.4.57 httpd-2.4.57.tar myhome.tar.gz myhome.tar.xz p s
j15@ace:~/d3$ lh
합계 103M
-rw-rw-r-- 1 j15 j15 800K 4월 26 15:31 b.tar.xz
drwxr-xr-x 114 j15 j15 4.0K 4월 26 12:14 etc - 압축 해제로 생성된 파일
drwxr-xr-x 13 j15 j15 4.0K 4월 3 01:05 httpd-2.4.57
-rw-rw-r-- 1 j15 j15 43M 4월 6 23:46 httpd-2.4.57.tar
-rw-rw-r-- 1 j15 j15 59M 4월 26 15:28 myhome.tar.gz
-rw-rw-r-- 1 j15 j15 664K 4월 26 15:30 myhome.tar.xz
-rw-r--r-- 1 j15 j15 3.5K 4월 26 15:05 p
-rw-r--r-- 1 j15 j15 13K 4월 26 15:05 s
5.
j15@ace:~/d3$ zip -r e.zip /etc/mail 2>/dev/null - zip형식으로 압축
j15@ace:~/d3$ ls
b.tar.xz e.zip etc httpd-2.4.57 httpd-2.4.57.tar myhome.tar.gz myhome.tar.xz p s
j15@ace:~/d3$ lh
합계 103M
-rw-rw-r-- 1 j15 j15 800K 4월 26 15:31 b.tar.xz
-rw-rw-r-- 1 j15 j15 147K 4월 26 15:35 e.zip - 새로 압축된 zip 파일
drwxr-xr-x 114 j15 j15 4.0K 4월 26 12:14 etc
drwxr-xr-x 13 j15 j15 4.0K 4월 3 01:05 httpd-2.4.57
-rw-rw-r-- 1 j15 j15 43M 4월 6 23:46 httpd-2.4.57.tar
-rw-rw-r-- 1 j15 j15 59M 4월 26 15:28 myhome.tar.gz
-rw-rw-r-- 1 j15 j15 664K 4월 26 15:30 myhome.tar.xz
-rw-r--r-- 1 j15 j15 3.5K 4월 26 15:05 p
-rw-r--r-- 1 j15 j15 13K 4월 26 15:05 s
j15@ace:~/d3$ unzip -d e e.zip - 압축된 파일 해제
Archive: e.zip
creating: e/etc/mail/
extracting: e/etc/mail/local-host-names
inflating: e/etc/mail/helpfile
creating: e/etc/mail/m4/
creating: e/etc/mail/peers/
inflating: e/etc/mail/peers/provider
,,,
inflating: e/etc/mail/tls/no_prompt
inflating: e/etc/mail/address.resolve
j15@ace:~/d3$ ls
b.tar.xz e e.zip etc httpd-2.4.57 httpd-2.4.57.tar myhome.tar.gz myhome.tar.xz p s
j15@ace:~/d3$ lh
합계 103M
-rw-rw-r-- 1 j15 j15 800K 4월 26 15:31 b.tar.xz
drwxrwxr-x 3 j15 j15 4.0K 4월 26 15:36 e - 압축이 해제 완료 후 생성된 파일
-rw-rw-r-- 1 j15 j15 147K 4월 26 15:35 e.zip
drwxr-xr-x 114 j15 j15 4.0K 4월 26 12:14 etc
drwxr-xr-x 13 j15 j15 4.0K 4월 3 01:05 httpd-2.4.57
-rw-rw-r-- 1 j15 j15 43M 4월 6 23:46 httpd-2.4.57.tar
-rw-rw-r-- 1 j15 j15 59M 4월 26 15:28 myhome.tar.gz
-rw-rw-r-- 1 j15 j15 664K 4월 26 15:30 myhome.tar.xz
-rw-r--r-- 1 j15 j15 3.5K 4월 26 15:05 p
-rw-r--r-- 1 j15 j15 13K 4월 26 15:05 s