cp ๋ช…๋ น: *nix์—์„œ ํŒŒ์ผ ํด๋”๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ณต์‚ฌํ•˜๋Š” ์ค‘

cp ๋ช…๋ น: *nix์—์„œ ํŒŒ์ผ ํด๋”๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ณต์‚ฌํ•˜๋Š” ์ค‘

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์‚ฌ์šฉ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ๋ฐํž™๋‹ˆ๋‹ค. ์™€์ผ๋“œ ์นด๋“œ ๋ณต์‚ฌํ•  ๋•Œ ๋ชจํ˜ธํ•œ ๋ช…๋ น ๋™์ž‘ 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 ์†Œ์Šค ํด๋” ๋์— ๋งˆ์นจํ‘œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ์„ ํฌํ•จํ•œ ๋ชจ๋“  ํŒŒ์ผ์ด ๋ณต์‚ฌ๋˜๋ฉฐ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ๊ฑฐ๋‚˜ ํŒŒ์ผ์ด ์ „ํ˜€ ์—†์–ด๋„ ์‹คํŒจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌํ›„

vmspike ์œ ์‚ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง„ ๋ช…๋ น ๋ฒ„์ „์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค.

cp -a -T /source /target

์˜ค์ฆˆ_์•Œ๋ ‰์Šค

cp -aT /source /target

์ฐธ๊ณ : ๋ ˆํ„ฐ ์ผ€์ด์Šค T ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ž์œผ๋ฉด ์™„์ „ํ•œ ์“ฐ๋ ˆ๊ธฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ณต์‚ฌ ๋ฐฉํ–ฅ์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ด์š”:

  • ํšŒ์‚ฌ RUVDS.COM Habrรฉ ๋ธ”๋กœ๊ทธ์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์™€ ์ง€์›์„ ๋ฐ›์œผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€๋‹น ํŠธ๋ฆฌํ”Œ ์ปจ์…‰. ์‚ฌ์ง„์€ ๋งค์šฐ ํฌ๊ณ  ์ƒ์„ธํ•˜๋ฉฐ ๋ณ„๋„์˜ ์ฐฝ์—์„œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PS ๋ฐœ๊ฒฌ๋œ ์˜ค๋ฅ˜๋Š” ๊ฐœ์ธ ๋ฉ”์‹œ์ง€๋กœ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์œ„ํ•ด ์นด๋ฅด๋งˆ๋ฅผ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

cp ๋ช…๋ น: *nix์—์„œ ํŒŒ์ผ ํด๋”๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ณต์‚ฌํ•˜๋Š” ์ค‘

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€