Linux/Shell

4. ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ ์กฐ์ž‘

  • ์™€์ผ๋“œ์นด๋“œ
์™€์ผ๋“œ์นด๋“œ ๋งค์นญ ๋ฌธ์ž
* ๋ชจ๋“  ๋ฌธ์ž
? ๋ชจ๋“  ํ•˜๋‚˜์˜ ๋ฌธ์ž
[characters] characters ๋ฌธ์ž์…‹์— ํฌํ•จ๋œ ๋ฌธ์ž
[!characters] characters ๋ฌธ์ž์…‹์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ฌธ์ž
[[:class:]] ์ €์žฅ๋œ ๋ฌธ์ž ํด๋ž˜์Šค์— ํฌํ•จ๋œ ๋ฌธ์ž

 

๋ฌธ์ž ํด๋ž˜์Šค ๋งค์นญ ๋ฌธ์ž
[:alnum:] ๋ชจ๋“  ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž ๋ฌธ์ž
[:alpha:] ๋ชจ๋“  ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž
[:digit:] ๋ชจ๋“  ์ˆซ์ž ๋ฌธ์ž
[:lower:] ๋ชจ๋“  ์†Œ๋ฌธ์ž
[:upper:] ๋ชจ๋“  ๋Œ€๋ฌธ์ž

 

ํŒจํ„ด ๋งค์นญ ๋ฌธ์ž
* ๋ชจ๋“  ํŒŒ์ผ
g* g๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ
b*.txt b๋กœ ์‹œ์ž‘ํ•˜๋Š” txt ํŒŒ์ผ
Data??? Data๋กœ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋’ค์— ์ •ํ™•ํžˆ ์„ธ ๊ฐœ์˜ ๋ฌธ์ž๋งŒ ์žˆ๋Š” ํŒŒ์ผ
[abc]* a, b, c๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ
BACKUP[0-9][0-9][0-9] BACKUP์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋’ค์— ์ •ํ™•ํžˆ ์„ธ ๊ฐœ์˜ ์ˆซ์ž๋งŒ ์žˆ๋Š” ํŒŒ์ผ
[[:upper:]]* ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ
[![:digit:]]* ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์€ ๋ชจ๋“  ํŒŒ์ผ
*[[:lower:]123] ํŒŒ์ผ๋ช…์ด ์†Œ๋ฌธ์ž๋กœ ๋๋‚˜๊ฑฐ๋‚˜ 1, 2, 3์œผ๋กœ ๋๋‚˜๋Š” ํŒŒ์ผ

 

  • ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
mkdir dir1 dir2 dir3

 

  • ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋ณต์‚ฌ
์˜ต์…˜ ์„ค๋ช…
-a --archive ํŒŒ์ผ ๋ฐ dir๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์†Œ์œ ์ž ๋ฐ ๊ถŒํ•œ ์ •๋ณด์™€ ๊ฐ™์€ ์†์„ฑ๊นŒ์ง€ ๋ณต์‚ฌ
-i --interactive ํŒŒ์ผ์„ ๋ฎ์–ด์”Œ์šฐ๊ธฐ ์ „ ํ™•์ธ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ
-r --recrusive dir์•ˆ์— ๋ชจ๋“  ๋‚ด์šฉ๊นŒ์ง€ ๋ณต์‚ฌ, dir๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ๊ผญ ํ•„์š”
-u --update dir์„ dir์— ๋ณต์‚ฌํ•  ๋•Œ ๊ทธ dir์— ์—†๊ฑฐ๋‚˜ ์ตœ์‹  ๋ฒ„์ „์ธ ํŒŒ์ผ๋งŒ ๋ณต์‚ฌ
-v --verbose ๋ณต์‚ฌ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ
cp file1 file2 #file1์„ file2์— ๋ณต์‚ฌ, ๋งŒ์•ฝ file2์— ํŒŒ์ผ์ด ์ด๋ฏธ ์žˆ๋‹ค๋ฉด file1ํŒŒ์ผ์„ ๋ฎ์–ด์”€
cp -i file1 file2 #๋ฎ์–ด์“ฐ๊ธฐ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ํ™•์ธ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์›€
cp file1 file2 dir1 #file1, file2๋ฅผ dir์— ๋ณต์‚ฌ
cp dir1/* dir2 #dir1์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ dir2์— ๋ณต์‚ฌ
cp -r dir1 dir2 #dir1์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ dir2์— ๋ณต์‚ฌ, ๋งŒ์•ฝ dir2๊ฐ€ ์—†๋‹ค๋ฉด ์ƒ์„ฑ

 

  • ํŒŒ์ผ ์ด๋™๊ณผ ์ด๋ฆ„ ๋ณ€๊ฒฝ
์˜ต์…˜ ์„ค๋ช…
-i --interactive ํŒŒ์ผ์„ ๋ฎ์–ด์”Œ์šฐ๊ธฐ ์ „ ํ™•์ธ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ
-u --update dir์„ dir์— ๋ณต์‚ฌํ•  ๋•Œ ๊ทธ dir์— ์—†๊ฑฐ๋‚˜ ์ตœ์‹  ๋ฒ„์ „์ธ ํŒŒ์ผ๋งŒ ์ด๋™
-v --verbose ์ด๋™ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ
mv file1 file2 #file1 ํŒŒ์ผ์„ file2 ํŒŒ์ผ๋กœ ์ด๋™, ๋งŒ์•ฝ file2์— ํŒŒ์ผ์ด ์ด๋ฏธ ์žˆ๋‹ค๋ฉด file1ํŒŒ์ผ์„ ๋ฎ์–ด์”€
mv -i file1 file2 #๋ฎ์–ด์“ฐ๊ธฐ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ํ™•์ธ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์›€
mv file1 file2 dir1 #file1, file2๋ฅผ dir1์— ์ด๋™
mv dir1 dir2 #dir1๊ณผ ๊ทธ ๋‚ด์šฉ๊นŒ์ง€ ๋ชจ๋‘ dir2๋กœ ์ด๋™

 

  • ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ
์˜ต์…˜ ์„ค๋ช…
-i --interactive ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ธฐ ์ „ ํ™•์ธ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ
-r --recursive dir์•ˆ์— ๋ชจ๋“  ๋‚ด์šฉ๊นŒ์ง€ ์‚ญ์ œ, dir๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ๊ผญ ํ•„์š”
-f --force ์กด์žฌํ•˜์ง€ ์•Š์€ ํŒŒ์ผ์€ ํ™•์ธ ๋ฉ”์„ธ์ง€ ์—†์ด ๋ฌด์‹œํ•˜๊ณ  ์‚ญ์ œ
-v --verbose ์‚ญ์ œ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์คŒ
rm file1 #file1 ํŒŒ์ผ์„ ์™„์ „ํžˆ ์‚ญ์ œ
rm -i file1 #์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ญ์ œ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ํ™•์ธ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์›€
rm -r file1 dir1 # file1๊ณผ dir1 ๋ฐ ํ•˜์œ„ ๋‚ด์šฉ๊นŒ์ง€ ๋ชจ๋‘ ์‚ญ์ œ
rm -rf file1 dir1 # file1๊ณผ dir1 ๋ฐ ํ•˜์œ„ ๋‚ด์šฉ๊นŒ์ง€ ๋ชจ๋‘ ๊ฐ•์ œ ์‚ญ์ œ

 

  • ๋งํฌ ์ƒ์„ฑ
ln file link #ํ•˜๋“œ ๋งํฌ
ln -s item link #์‹ฌ๋ณผ๋ฆญ ๋งํฌ

ํ•˜๋“œ ๋งํฌ

- ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ํŒŒ์ผ์—๋Š” ํ•˜๋‚˜์˜ ํ•˜๋“œ ๋งํฌ๊ฐ€ ์žˆ์Œ > ํŒŒ์ผ์— ์ด๋ฆ„์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ

- ํ•˜๋“œ ๋งํฌ๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๋•Œ ๊ทธ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๊ณง๋ฐ”๋กœ ์ƒ์„ฑ

- ํŒŒ์ผ์‹œ์Šคํ…œ ์™ธ๋ถ€์— ์žˆ๋Š” ํŒŒ์ผ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์—†์Œ(๊ฐ™์€ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜์— ์žˆ๋Š” ํŒŒ์ผ๋งŒ ๋งํฌ ๊ฐ€๋Šฅ)

- ํ•˜๋“œ ๋งํฌ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†์Œ

- ํ•˜๋“œ ๋งํฌ๋ฅผ ํฌํ•จํ•œ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก์€ ํ•ด๋‹น ๋งํฌ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์–ธ์ธ์ง€ ๋ณด์—ฌ์ฃผ์ง€ ์•Š์Œ

- ํ•˜๋“œ ๋งํฌ๊ฐ€ ์‚ญ์ œ๋  ๋•Œ ๋งํฌ๋„ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง€์ง€๋งŒ ํŒŒ์ผ ๋‚ด์šฉ์€ ๊ทธ ํŒŒ์ผ์˜ ๋ชจ๋“  ๋งํฌ๊ฐ€ ์‚ญ์ œ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ณ„์† ๋‚จ์•„์žˆ์Œ

- ์ฆ‰, ํŒŒ์ผ์— ํ• ๋‹น๋œ ๊ณต๊ฐ„์ด ๊ทธ๋Œ€๋กœ ๋‚จ์Œ

 

์‹ฌ๋ณผ๋ฆญ ๋งํฌ

- ์ฐธ์กฐ๋œ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ…์ŠคํŠธ ํฌ์ธํ„ฐ๊ฐ€ ํฌํ•จ๋œ ํŠน์ˆ˜ํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑ(inode ๋‹ค๋ฆ„)

- ๋ฐ”๋กœ๊ฐ€๊ธฐ์™€ ๋งค์šฐ ํก์‚ฌ

- ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ๊ณผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ๊ทธ ์ž์ฒด๋Š” ์„œ๋กœ ๊ตฌ๋ถ„ํ•˜๊ธฐ ํž˜๋“ฆ

- ์‹ฌ๋ณผ๋ง ๋งํฌ์— ํŽธ์ง‘์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ๋„ ๋ณ€๊ฒฝ

- ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ๋งํฌ๋งŒ ์‚ญ์ œ๋˜๊ณ  ํŒŒ์ผ์€ ๋‚จ์Œ

- ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ํŒŒ์ผ์„ ์ง€์› ๋‹ค๋ฉด ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋Š” ์‚ด์•„์žˆ์ง€๋งŒ ์ด ๋งํฌ๋Š” ์•„๋ฌด ์—ญํ• ์„ ํ•˜์ง€ ๋ชปํ•จ > ๋งํฌ๊ฐ€ ๊นจ์ง(๋นจ๊ฐ„์ƒ‰ ํ˜น์€ ๋‹ค๋ฅธ ์ƒ‰์ƒ์œผ๋กœ ํ‘œ์‹œ)

 

what is the difference between ํ•˜๋“œ ๋งํฌ and ์‹ฌ๋ณผ๋ฆญ ๋งํฌ?

- ๋ฆฌ๋ˆ…์Šค๋Š” ๊ณ ์œ ํ•œ inode๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ํ˜น์€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ตฌ๋ถ„

- inode : permission, ๋งํฌ ์ˆ˜, ์†Œ์œ ์ž๋ช…, ๊ทธ๋ฃน๋ช…, ํŒŒ์ผ ํฌ๊ธฐ, ํŒŒ์ผ ์ฃผ์†Œ, ๋งˆ์ง€๋ง‰ ์ ‘๊ทผ ์ •๋ณด, ๋งˆ์ง€๋ง‰ ์ˆ˜์ • ์ •๋ณด, inode ์ˆ˜์ • ์ •๋ณด ๋“ฑ

- ํ•˜๋“œ ๋งํฌ๋Š” ์›๋ณธ ํŒŒ์ผ๊ณผ ํ•˜๋“œ ๋งํฌ์˜ inode๊ฐ€ ๋™์ผ

- ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋Š” ์›๋ณธ ํŒŒ์ผ๊ณผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์˜ inode๊ฐ€ ๋ณ„๋„๋กœ ์กด์žฌํ•จ(๋‹จ์ˆœ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์— ์›๋ณธ ํŒŒ์ผ์˜ ์œ„์น˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ ์ •๋ณด๋ฅผ inode์— ๊ฐ€์ง)