์ด ๊ธฐ์ฌ์์๋ ์ฌ์ฉ๊ณผ ๊ด๋ จํ์ฌ ๋ช
ํํ์ง ์์ ๋ช ๊ฐ์ง ์ฌํญ์ ๋ฐํ๋๋ค. cp
๋ณต์ฌํ ๋ ๊ฑด๋๋ฐ๊ฑฐ๋ ์ถฉ๋ํ์ง ์๊ณ ์๋ง์ ํ์ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ณต์ฌํ ์ ์๋ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
/source ํด๋์ ๋ชจ๋ ๋ด์ฉ์ /target ํด๋๋ก ๋ณต์ฌํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ฅ ๋จผ์ ๋ ์ค๋ฅด๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
cp /source/* /target
์ด ๋ช ๋ น์ ์ฆ์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด ๋ณด๊ฒ ์ต๋๋ค.
cp -a /source/* /target
์ด์ -a
๋ชจ๋ ์์ฑ, ๊ถํ์ ๋ณต์ฌ๋ฅผ ์ถ๊ฐํ๊ณ ์ฌ๊ท๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ถ๋ฆฌ์ ์ ํํ ๋ณต์ ๊ฐ ์๊ตฌ๋์ง ์๋ ๊ฒฝ์ฐ์๋ ์ด์ ๋ง์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. -r
.
๋ณต์ฌํ ํ์ ๋ชจ๋ ํ์ผ์ด ๋ณต์ฌ๋์ง๋ ์์์์ ์ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ ์ผ๋ก ์์ํ๋ ํ์ผ์ ๋๋ค.
.profile
.local
.mc
๋ฑ๋ฑ.
์ ์ด๋ฐ ์ผ์ด ์ผ์ด ๋ฌ์ต๋๊น?
์์ผ๋์นด๋๋ ์(bash
์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ). ๊ธฐ๋ณธ์ ์ผ๋ก bash๋ ์ ์ผ๋ก ์์ํ๋ ๋ชจ๋ ํ์ผ์ ์จ๊น์ผ๋ก ์ฒ๋ฆฌํ๋ฏ๋ก ๋ฌด์ํฉ๋๋ค. ์ด ๋์์ ๋ฐฉ์งํ๋ ค๋ฉด ๋์์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. bash
๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ:
shopt -s dotglob
์ฌ๋ถํ
ํ์๋ ์ด ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ง์๋๋๋ก ํ๋ ค๋ฉด ํด๋์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ์ฌ wildcard.sh ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค. /etc/profile.d
(์๋ง๋ ๋ฐฐํฌํ์ ๋ค๋ฅธ ํด๋๊ฐ ์์ ์ ์์ต๋๋ค).
๊ทธ๋ฆฌ๊ณ ์์ค ๋๋ ํ ๋ฆฌ์ ํ์ผ์ด ์์ผ๋ฉด ์์ ๋ณํ ๋์ ์ด๋ค ๊ฒ๋ ๋์ฒดํ ์ ์์ผ๋ฉฐ ๋ณต์ฌ๋ ์ค๋ฅ์ ํจ๊ป ์คํจํฉ๋๋ค. ์ด ์ํฉ์ ๋ํ ์ต์
์ด ์์ต๋๋ค failglob
ะธ nullglob
. ์ฐ๋ฆฌ๋ ์ค์ ํด์ผ ํ ๊ฒ์
๋๋ค failglob
, ์ด๋ ๋ช
๋ น์ด ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. nullglob
์ผ์นํ๋ ํญ๋ชฉ์ ์ฐพ์ง ๋ชปํ ์์ผ๋์นด๋๊ฐ ์๋ ๋ฌธ์์ด์ ๋น ๋ฌธ์์ด(๊ธธ์ด๊ฐ XNUMX)๋ก ๋ณํํ๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ต๋๋ค. cp
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ํด๋์ ์์ฒ ๊ฐ ์ด์์ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ์์ผ๋์นด๋ ์ ๊ทผ ๋ฐฉ์์ ์์ ํ ํฌ๊ธฐํด์ผ ํฉ๋๋ค. ์ฌ์ค์ bash
์์ผ๋์นด๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋งค์ฐ ๊ธด ๋ช
๋ น์ค๋ก ํ์ฅํฉ๋๋ค.
cp -a /souce/a /source/b /source/c โฆโฆ /target
๋ช ๋ น์ค ๊ธธ์ด์๋ ์ ํ์ด ์์ผ๋ฉฐ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํ์ธํ ์ ์์ต๋๋ค.
getconf ARG_MAX
๋ช ๋ น์ค์ ์ต๋ ๊ธธ์ด๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์์๋ด ์๋ค:
2097152
ะะปะธ :
xargs --show-limits
์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ป์ต๋๋ค:
โฆ.
Maximum length of command we could actually use: 2089314
โฆ.
๊ทธ๋ผ ์์ผ๋์นด๋ ์์ด ํด๋ณด์.
๊ทธ๋ฅ ์ฐ์
cp -a /source /target
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ํ๋์ ๋ชจํธํจ์ ์ง๋ฉดํฉ๋๋ค cp
. /target ํด๋๊ฐ ์์ผ๋ฉด ํ์ํ ๊ฒ์ ์ป์ต๋๋ค.
๊ทธ๋ฌ๋ ๋์ ํด๋๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ํ์ผ์ /target/source ํด๋์ ๋ณต์ฌ๋ฉ๋๋ค.
/target ํด๋์๋ ํ์ํ ํ์ผ์ด ํฌํจ๋ ์ ์๊ณ ์๋ฅผ ๋ค์ด /target์ ํ์ผ์ /source์ ํ์ผ๋ก ๋ณด์ํ๋ ๊ฒ์ด ๋ชฉํ์ด๊ธฐ ๋๋ฌธ์ ํญ์ ๋ฏธ๋ฆฌ ์ญ์ ํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์์ค ํด๋์ ๋์ ํด๋์ ์ด๋ฆ์ด ๊ฐ์ผ๋ฉด /source์์ /home/source๋ก ๋ณต์ฌํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
cp -a /source /home
๋ณต์ฌํ ํ /home/source์ ํ์ผ์ /source์ ํ์ผ๋ก ๋ณด์๋ฉ๋๋ค.
์ด๋ ๋ ผ๋ฆฌ์ ์ธ ๋ฌธ์ ์ ๋๋ค. ํด๋ ์ด๋ฆ์ด ๊ฐ์ผ๋ฉด ๋์ ๋๋ ํฐ๋ฆฌ์ ํ์ผ์ ์ถ๊ฐํ ์ ์์ง๋ง, ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์๋ณธ ํด๋๊ฐ ๋์ ํด๋ ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์์ผ๋์นด๋ ์์ด cp๋ฅผ ์ฌ์ฉํ์ฌ/source์์/target์ผ๋ก ํ์ผ์ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ด๋ฌํ ์ ํดํ ์ ํ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๋ช ํํ์ง ์์ ์๋ฃจ์ ์ ์ฌ์ฉํฉ๋๋ค.
cp -a /source/. /target
DOS ๋ฐ Linux์ ์ต์ํ ์ฌ๋๋ค์ ์ด๋ฏธ ๋ชจ๋ ๊ฒ์ ์ดํดํ์ต๋๋ค. ๊ฐ ํด๋ ์์๋ ๋ณด์ด์ง ์๋ ํด๋ "."๊ฐ 2๊ฐ ์์ต๋๋ค. ๋ฐ ".."๋ ํ์ฌ ๋ฐ ์์ ๋๋ ํฐ๋ฆฌ์ ๋ํ ์์ฌ ํด๋ ๋งํฌ์ ๋๋ค.
- ๋ณต์ฌํ ๋
cp
์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ /target/ ์์ฑ์ ์๋ํฉ๋๋ค. - ๊ทธ๋ฌํ ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ๋ฉฐ /target์ ๋๋ค.
- /source์ ํ์ผ์ด /target์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๋ณต์ฌ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ธฐ์ต ์์ด๋ ๋ฒฝ์ ๊ตต์ ์ก์๋ก ๊ฑธ์ด๋์ธ์.
cp -a /source/. /target
์ด ๋ช ๋ น์ ๋์์ ๋ช ํํฉ๋๋ค. ํ์ผ์ด ๋ฐฑ๋ง ๊ฐ์ด๋ ์ ํ ์๋ ์๊ด์์ด ๋ชจ๋ ๊ฒ์ด ์ค๋ฅ ์์ด ์๋ํฉ๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
๋ณต์ฌํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ํ ํด๋์์ ๋ค๋ฅธ ํด๋๋ก ํ์ผ์ ์ ์กํ ๋ ์์ผ๋์นด๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค cp
์์ค ํด๋ ๋์ ๋ง์นจํ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์จ๊ฒจ์ง ํ์ผ์ ํฌํจํ ๋ชจ๋ ํ์ผ์ด ๋ณต์ฌ๋๋ฉฐ ์๋ฐฑ๋ง ๊ฐ์ ํ์ผ์ด ์๊ฑฐ๋ ํ์ผ์ด ์ ํ ์์ด๋ ์คํจํ์ง ์์ต๋๋ค.
์ฌํ
cp -a -T /source /target
cp -aT /source /target
์ฐธ๊ณ : ๋ ํฐ ์ผ์ด์ค T
์๋ฏธ๊ฐ ์์ต๋๋ค. ์์ผ๋ฉด ์์ ํ ์ฐ๋ ๊ธฐ๊ฐ ๋ฉ๋๋ค. ๋ณต์ฌ ๋ฐฉํฅ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
๊ฐ์ฌํด์:
- ํ์ฌ
RUVDS.COM Habrรฉ ๋ธ๋ก๊ทธ์ ๊ฒ์ํ ์ ์๋ ๊ธฐํ์ ์ง์์ ๋ฐ์ผ์๊ธฐ ๋ฐ๋๋๋ค. - ์ด๋ฏธ์ง๋น
ํธ๋ฆฌํ ์ปจ์ . ์ฌ์ง์ ๋งค์ฐ ํฌ๊ณ ์์ธํ๋ฉฐ ๋ณ๋์ ์ฐฝ์์ ์ด ์ ์์ต๋๋ค.
PS ๋ฐ๊ฒฌ๋ ์ค๋ฅ๋ ๊ฐ์ธ ๋ฉ์์ง๋ก ๋ณด๋ด์ฃผ์ธ์. ๋๋ ์ด๊ฒ์ ์ํด ์นด๋ฅด๋ง๋ฅผ ๋๋ฆฝ๋๋ค.
์ถ์ฒ : habr.com