Umyalelo we-cp: ngokuchanekileyo ukukopa iifayile zefayile kwi-*nix

Umyalelo we-cp: ngokuchanekileyo ukukopa iifayile zefayile kwi-*nix

Eli nqaku liza kutyhila ezinye izinto ezingacacanga ezinxulumene nokusetyenziswa kwe amakhadi asendle xa ukhuphela, indlela yokuziphatha yomyalelo engaqondakaliyo cp xa ukopa, kunye neendlela ezikuvumela ukuba ukope ngokuchanekileyo inani elikhulu leefayile ngaphandle kokutsiba okanye ukuntlitheka.

Masithi kufuneka sikhuphele yonke into ukusuka kumthombo/umthombo wefolda ukuya kwi/ifolda ekujoliswe kuyo.

Into yokuqala ethi qatha engqondweni yile:

cp /source/* /target

Masilungise ngokukhawuleza lo myalelo:

cp -a /source/* /target

Ngundoqo -a izakongeza ukhuphelo lwazo zonke iimpawu, amalungelo kwaye yongeze uphindaphindo. Xa ukuveliswa kwakhona kwamalungelo ngokuchanekileyo kungafuneki, isitshixo sanele -r.

Emva kokukopa, siya kufumanisa ukuba ayizizo zonke iifayile ezikhutshelweyo - iifayile eziqala ngechaphaza njenge:

.profile
.local
.mc

kunye nokunye.

Kwakutheni ukuze kwenzeke oku?

Ngenxa yokuba amakhadi asendle aqhutywa liqokobhe (bash kwimeko eqhelekileyo). Ngokungagqibekanga, i-bash iya kuzihoya zonke iifayile eziqala ngamachaphaza, njengoko iziphatha njengezifihliweyo. Ukunqanda le ndlela yokuziphatha kuya kufuneka sitshintshe indlela yokuziphatha bash usebenzisa umyalelo:

shopt -s dotglob

Ukuqinisekisa ukuba olu tshintsho lokuziphatha luyaqhubekeka emva kokuqalisa ngokutsha, ungenza i wildcard.sh ifayile ngalo myalelo kwisilawulo. /etc/profile.d (Mhlawumbi unikezelo lwakho lunoluhlu olwahlukileyo).

Kwaye ukuba akukho fayile kuluhlu lwemvelaphi, ngoko iqokobhe aliyi kukwazi ukufaka enye indawo endaweni ye asterisk, kwaye ukukopa kuya kusilela ngempazamo. Kukho iinketho ezichasene nale meko failglob ΠΈ nullglob. Kuya kufuneka simise failglob, eya kuthintela umyalelo ekubeni uphunyezwe. nullglob ayizukusebenza, kuba iguqulela umtya ngamakhadi asendle angakhange afumane umdlalo kumtya ongenanto (ubude obunguziro), owenzela cp iya kubangela impazamo.

Nangona kunjalo, ukuba kukho amawaka eefayile okanye ngaphezulu kwifolda, indlela yamakhadi asendle kufuneka ishiywe ngokupheleleyo. Inyaniso kukuba bash yandisa amakhadi asendle kumgca womyalelo omde njengo:

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

Kukho umda kubude bomgca womyalelo, esinokuwufumana sisebenzisa umyalelo:

getconf ARG_MAX

Masifumane ubude bobude bomgca womyalelo kwii-bytes:

2097152

Okanye:

xargs --show-limits

Sifumana into enje:

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

Ngoko ke, masenze ngaphandle kwamakhadi asendle ngokupheleleyo.

Masibhale nje

cp -a /source /target

Kwaye apha sijongene nokungacaci kokuziphatha cp. Ukuba ifolda/incwadi ekujoliswe kuyo ayikho, ngoko siya kufumana into esiyifunayo.

Nangona kunjalo, ukuba isiqulathi seefayili ekujoliswe kuso sikhona, ngoko ke iifayile ziya kukhutshelwa kwifolda/kwithagethi/yemvelaphi.

Asinakusoloko sicima ifolda / ekujoliswe kuyo kwangaphambili, kuba inokuba neefayile esizifunayo kunye nenjongo yethu, umzekelo, ukongeza iifayile kwi / ekujoliswe kuzo ngeefayile ezivela / kumthombo.

Ukuba umthombo kunye neefolda zendawo zibizwa ngokufanayo, umzekelo, besikhuphela ukusuka / kumthombo ukuya / ekhaya / umthombo, ngoko sinokusebenzisa umyalelo:

cp -a /source /home

Kwaye emva kokukopisha, iifayile kwi /home/source ziya kuncediswa ngeefayile ezivela /umthombo.

Le yingxaki enengqiqo: singongeza iifayile kulawulo lwendawo yokufikela ukuba iincwadi ezinegama elifanayo, kodwa ukuba zahlukile, ngoko incwadi eneenkcukacha yemvelaphi iya kubekwa ngaphakathi kwendawo ekuyiwa kuyo. Indlela yokukopa iifayile ukusuka / kumthombo ukuya / ekujoliswe kuyo usebenzisa i-cp ngaphandle kwamakhadi asendle?

Ukujikeleza lo mda unobungozi, sisebenzisa isisombululo esingacacanga:

cp -a /source/. /target

Abo baqhelene ne-DOS kunye neLinux sele beyiqondile yonke into: ngaphakathi kwifolda nganye kukho iifolda ezi-2 ezingabonakaliyo "." kunye ne "..", ezizifolda ezingeyonyani ezidibanisa abalawuli bangoku kunye nabaphezulu.

  • Xa kukotshwa cp ijonga ubukho kwaye izama ukwenza /target/.
  • Uluhlu olunjalo lukhona kwaye luyi/thagethi
  • Iifayile ezisuka/kumthombo zikotshwa ukuya/kujoliswe kuko ngokuchanekileyo.

Ke, yixhome kwisakhelo esingqindilili kwinkumbulo yakho okanye eludongeni:

cp -a /source/. /target

Ukuziphatha kwalo myalelo kucacile. Yonke into iya kusebenza ngaphandle kweempazamo, nokuba uneefayile ezisisigidi okanye awunayo kwaphela.

ezifunyanisiweyo

Ukuba ufuna ukukopa zonke iifayile ukusuka kulawulo olunye ukuya kwenye, asisebenzisi i-wildcards, kungcono ukuzisebenzisa endaweni yoko cp idityaniswe nexesha ekupheleni kwencwadi yemvelaphi. Oku kuya kukopa zonke iifayile, kuquka ezifihliweyo, kwaye aziyi kusilela ngezigidi zeefayile okanye akukho fayile kwaphela.

Emva kwegama

vmspike icebise inguqulelo yomyalelo enesiphumo esifanayo:

cp -a -T /source /target

Oz_Alex

cp -aT /source /target

QAPHELA: ityala leleta T inentsingiselo. Ukuba uyayixuba, uya kufumana inkunkuma epheleleyo: indlela yokukopa iya kutshintsha.
Enkosi:

  • Iinkampani I-RUVDS.COM ngenkxaso kunye nethuba lokupapasha kwibhlog yakho kwiHabrΓ©.
  • Ngomfanekiso ngamnye Triple Concept. Umfanekiso mkhulu kakhulu kwaye uneenkcukacha, unokuvulwa kwifestile eyahlukileyo.

PS Nceda uthumele naziphi na iimpazamo oziqaphela kumyalezo wabucala. Ndiyakwandisa i-karma yam kule nto.

Umyalelo we-cp: ngokuchanekileyo ukukopa iifayile zefayile kwi-*nix

umthombo: www.habr.com

Yongeza izimvo