cp baiko: mandika tsara ny lahatahiry rakitra ao amin'ny *nix

cp baiko: mandika tsara ny lahatahiry rakitra ao amin'ny *nix

Ity lahatsoratra ity dia hanambara zavatra tsy miharihary mifandraika amin'ny fampiasana Ekena ireo marika ankapobe rehefa mandika, fihetsika baiko tsy mazava cp rehefa mandika, ary koa ny fomba ahafahanao mandika araka ny tokony ho izy ny rakitra marobe tsy mitsambikina na midona.

Andao atao hoe mila mandika ny zava-drehetra avy amin'ny lahatahiry / source mankany amin'ny folder / target.

Ny zavatra voalohany tonga ao an-tsaina dia:

cp /source/* /target

Andeha hanitsy avy hatrany ity baiko ity ho:

cp -a /source/* /target

manan-danja -a dia hanampy dika mitovy ny toetra rehetra, zo ary hanampy recursion. Rehefa tsy ilaina ny famoahana marina ny zo dia ampy ny fanalahidy iray -r.

Aorian'ny fanaovana kopia dia ho hitantsika fa tsy ny rakitra rehetra no nadika - ny rakitra manomboka amin'ny teboka toy ny:

.profile
.local
.mc

sy ny toy izany.

Nahoana no nitranga izany?

Satria ny wildcard dia nokarakarain'ny akorandriaka (bash amin'ny tranga mahazatra). Amin'ny alΓ lan'ny default, ny bash dia tsy hiraharaha ny rakitra rehetra manomboka amin'ny teboka, satria raisina ho miafina. Mba hisorohana izany fihetsika izany dia tsy maintsy manova fitondran-tena isika bash mampiasa ny baiko:

shopt -s dotglob

Mba hahazoana antoka fa mbola mitohy io fiovan'ny fitondran-tena io aorian'ny famerenana indray dia azonao atao ny mamorona rakitra wildcard.sh miaraka amin'ity baiko ity ao amin'ny lahatahiry. /etc/profile.d (Angamba manana lahatahiry hafa ny fizaranao).

Ary raha tsy misy rakitra ao amin'ny lahatahiry loharano, dia tsy afaka manolo na inona na inona ny akorandriaka ho solon'ny asterisk, ary ny kopia dia tsy mahomby amin'ny fahadisoana. Misy safidy manohitra ity toe-javatra ity failglob ΠΈ nullglob. Mila mametraka isika failglob, izay hanakana ny baiko tsy hotanterahina. nullglob tsy mandeha, satria mamadika tady miaraka amin'ny wildcard izay tsy nahita lalao ho tady foana (aotra lava), izay ho an'ny cp hiteraka hadisoana.

Na izany aza, raha misy rakitra an'arivony na mihoatra ao amin'ny lahatahiry, dia tokony hajanona tanteraka ny fomba fiasa wildcards. Ny zava-misy dia izany bash manitatra ny wildcard ho andalana baiko lava toy ny:

cp -a /souce/a /source/b /source/c …… /target

Misy fetra ny halavan'ny andalana baiko, izay azontsika fantarina amin'ny alalan'ny baiko:

getconf ARG_MAX

Andeha hojerentsika ny halavan'ny baiko ambony indrindra amin'ny bytes:

2097152

na:

xargs --show-limits

Mahazo zavatra toy ny:

….
Maximum length of command we could actually use: 2089314
….

Noho izany, andao isika hanao tsy misy wildcard mihitsy.

Aleo hanoratra fotsiny

cp -a /source /target

Ary eto isika dia miatrika tsy mazava ny fitondran-tena cp. Raha tsy misy ny folder / target dia ho azontsika izay ilaintsika.

Na izany aza, raha misy ny lahatahiry kendrena, dia hadika amin'ny lahatahiry / target/source ny rakitra.

Tsy afaka mamafa mialoha ny lahatahiry / target izahay, satria mety misy rakitra ilaintsika ary ny tanjonay, ohatra, dia ny mameno ny rakitra ao amin'ny /target miaraka amin'ny rakitra avy amin'ny / source.

Raha toa ka mitovy ny anarana nomena ny lahatahiry loharano sy toerana misy azy, ohatra, dia mandika avy amin'ny / source mankany / home / source izahay, dia afaka mampiasa ny baiko izahay:

cp -a /source /home

Ary aorian'ny kopia, ny rakitra ao amin'ny /home/source dia ampiana rakitra avy amin'ny / source.

Olana lojika izany: afaka manampy rakitra ao amin'ny lahatahiry ahatongavana isika raha mitovy ny anaran'ireo lahatahiry, fa raha tsy mitovy izy ireo, dia hapetraka ao anatin'ny toerana haleha ny lahatahiry loharano. Ahoana ny fomba handikana rakitra avy amin'ny / loharano mankany / tanjona amin'ny fampiasana cp tsy misy wildcard?

Mba hialana amin'ity fetra mampidi-doza ity dia mampiasa vahaolana tsy mazava izahay:

cp -a /source/. /target

Ireo zatra DOS sy Linux dia efa nahatakatra ny zava-drehetra: ao anatin'ny lahatahiry tsirairay dia misy lahatahiry 2 tsy hita maso "." ary "..", izay pseudo-folders rohy mankany amin'ny lahatahiry ankehitriny sy ambony.

  • Rehefa mandika cp manamarina ny fisiany ary manandrana mamorona /target/.
  • Misy ny lahatahiry toy izany ary izy dia /target
  • Ny rakitra avy amin'ny / loharano dia adika amin'ny / tanjona tsara.

Noho izany, ahantona amin'ny frame matevina ao anaty fitadidianao na amin'ny rindrina:

cp -a /source/. /target

Mazava ny fihetsik'ity baiko ity. Hiasa tsy misy hadisoana ny zava-drehetra, na manana rakitra an-tapitrisany ianao na tsy misy mihitsy.

hitany

Raha mila kopia ianao ny rehetra rakitra avy amin'ny lahatahiry iray mankany amin'ny iray hafa, tsy mampiasa wildcards fa tsara kokoa ny mampiasa azy ireo cp mitambatra amin'ny fe-potoana amin'ny faran'ny lahatahiry loharano. Izany dia handika ny rakitra rehetra, anisan'izany ny miafina, ary tsy ho diso amin'ny rakitra an-tapitrisany na tsy misy rakitra mihitsy.

afterword

vmspike nanoso-kevitra dikan-teny misy valiny mitovy:

cp -a -T /source /target

Oz_Alex

cp -aT /source /target

FANAMARIHANA: kitapo taratasy T manana ny dikany. Raha afangaro ianao dia hahazo fako tanteraka: hiova ny lalana fanaovana kopia.
Misaotra:

  • orinasa RUVDS.COM ho fanohanana sy fahafahana hamoaka ao amin'ny bilaoginao ao amin'ny HabrΓ©.
  • Isaky ny sary Hevitra telo. Ny sary dia tena lehibe sy amin'ny antsipiriany, azo sokafana amin'ny varavarankely mitokana.

Sal Alefaso amin'ny hafatra manokana azafady izay lesoka hitanao. Ampitomboiko ny karma amin'izany.

cp baiko: mandika tsara ny lahatahiry rakitra ao amin'ny *nix

Source: www.habr.com

Add a comment