Ինչպե՞ս ստիպել cp հրամանին վերագրել առանց հաստատման:


Ներածություն

Unix-ի նման օպերացիոն համակարգերի աշխարհում cp հրամանը էական դեր է խաղում ֆայլերի կառավարման մեջ: Ինչպես անունն է հուշում, այս հրամանը թույլ է տալիս պատճենել ֆայլերը մի վայրից մյուսը:

Անկախ նրանից, թե դուք պետք է կրկնօրինակեք մեկ ֆայլ կամ փոխանցեք դրանցով լի թղթապանակ, cp-ը Linux-ի և macOS-ի շատ օգտատերերի համար օգտագործվող գործիքն է: Cp հրամանի հիմնական շարահյուսությունը համեմատաբար պարզ է. մուտքագրեք «cp», որին հաջորդում է ֆայլի կամ գրացուցակի անունը, որը ցանկանում եք պատճենել, որին հաջորդում է դրա նպատակային ուղին:

Այնուամենայնիվ, կա մի ընդհանուր խնդիր, որը կարող է առաջանալ այս հրամանն օգտագործելիս. գոյություն ունեցող ֆայլը վերագրանցելիս հաստատման համար պահանջվում է: Սա կարող է ժամանակատար և հիասթափեցնող լինել, եթե դուք պատճենում եք մեծ թվով ֆայլեր կամ աշխատում եք ավտոմատացված սկրիպտների հետ:

Հաստատման հուշումների տհաճությունը ֆայլերը վերագրելիս

Լռելյայնորեն, cp-ն օգտագործելիս, եթե նույն անունով ֆայլ արդեն գոյություն ունի նպատակակետի գրացուցակում, այն ձեզ կհուշի հաստատում նախքան այն վերագրանցելը: Թեև այս հատկությունը նախատեսված է տվյալների պատահական կորուստը կանխելու համար, այն կարող է նաև տհաճ լինել, եթե դուք միանգամից պատճենում եք բազմաթիվ ֆայլեր կամ աշխատում եք ավտոմատացում պահանջող սցենարների հետ: Պատկերացրեք, որ դուք պետք է պատճենեք տասնյակ կամ նույնիսկ հարյուրավոր ֆայլեր մի գրացուցակից մյուսը:

Եթե ամեն անգամ, երբ cp-ն բախվում է կրկնօրինակ ֆայլի, այն դադարեցնում է և սպասում ձեր հաստատմանը նախքան շարունակելը, այն կարող է տևել ժամեր՝ րոպեների փոխարեն: Այս հարցը պետք է ինչ-որ կերպ շրջվի, բարեբախտաբար կա:

Հասկանալով -f դրոշը

Երբ մենք ցանկանում ենք պատճենել ֆայլերը՝ օգտագործելով cp հրամանը, մեզ հաճախ հանդիպում է հուշում, որը մեզ հարցնում է, թե արդյոք իսկապես ցանկանում ենք վերագրել գոյություն ունեցող ֆայլը: Սա կարող է հիասթափեցնել, հատկապես շատ ֆայլեր միանգամից պատճենելիս:

Բարեբախտաբար, առկա է դրոշակ, որը կարող է ստիպել cp հրամանին վերագրել առանց հաստատման: Այդ դրոշը -f.

-f դրոշը նշանակում է «ուժ», և այն cp հրամանին ասում է պատճենել և վերագրել առկա ցանկացած նպատակակետ ֆայլ՝ առանց նախապես հաստատում խնդրելու: Այս տարբերակը հատկապես օգտակար է սկրիպտներում կամ իրավիճակներում, երբ դուք պետք է ավտոմատացնեք ֆայլերի պատճենումը և չեք ցանկանում, որ ձեր սկրիպտը կախված լինի ինտերակտիվ հուշումից կամ ձախողվի ոչ զրոյական ելքի կարգավիճակի պատճառով:

-f դրոշի օգտագործման օրինակ

Ենթադրենք, որ ձեր գլխավոր գրացուցակում ունեք երկու ֆայլ՝ «file1.txt» և «file2.txt»: Դուք ցանկանում եք պատճենել «file1.txt»-ը «project_files» կոչվող գրացուցակում: Եթե դուք օգտագործում եք սովորական cp հրամանը, ապա այսպիսին է −

cp ~/file1.txt ~/project_files/ 

Ձեզ կառաջարկվի վերագրանցել, եթե նպատակակետ գրացուցակում արդեն կա այդ անունով ֆայլ: Այնուամենայնիվ, եթե դուք օգտագործում եք -f դրոշն այսպես −

Վերագրանցումը տեղի կունենա ավտոմատ կերպով՝ առանց որևէ հուշումների:

Կարևոր է նշել, որ այս դրոշի օգտագործումը նշանակում է, որ բոլոր գոյություն ունեցող ֆայլերը նույն անունով, ինչ պատճենվողները, կվերագրվեն առանց նախազգուշացման: Այնպես որ, այս տարբերակն օգտագործելիս առավել զգույշ եղեք:

Wildcards-ի օգտագործումը -f դրոշով

The Power of Wildcards

cp հրամանի ամենահզոր առանձնահատկություններից մեկն այն է, որ նա կարող է օգտագործել wildcards միանգամից մի քանի ֆայլեր պատճենելու համար: Wildcards-ը հատուկ նիշեր են, որոնք ներկայացնում են մեկ կամ մի քանի նիշ ֆայլի անվան մեջ:

Լինուքսի մեջ օգտագործվող նիշերի ամենատարածված նիշերն են «*» և «?»: «*» նիշը ներկայացնում է ցանկացած թվով նիշ, մինչդեռ «?" ներկայացնում է մեկ կերպար:

Օրինակ, ենթադրենք, որ դուք ունեք «documents» կոչվող գրացուցակ, և այդ գրացուցակի ներսում դուք ունեք մի քանի ֆայլեր նմանատիպ անուններով, ինչպիսիք են «document1.txt», «document2.txt» և այլն: Յուրաքանչյուր ֆայլ առանձին-առանձին ձեռքով պատճենելու փոխարեն, դուք կարող եք օգտագործել cp հրամանը հետևյալ կերպ՝ cp document/document*.txt /backup/:

cp documents/document*.txt /backup/ 

Սա կպատճենի բոլոր ֆայլերը, որոնք սկսվում են «document»-ով և ավարտվում «.txt»-ով «documents» գրացուցակից «/backup/» գրացուցակում: Վառանիշների օգտագործումը կարող է խնայել ժամանակ և ջանք մեծ թվով ֆայլերի հետ գործ ունենալիս:

Wildcards-ի օգտագործումը -f դրոշով

Որպեսզի ստիպեն վերագրանցել առանց հաստատման՝ օգտագործելով wildcards, մենք պարզապես միավորում ենք դրանք մեր cp հրամանի -f դրոշի հետ: Օրինակ, եթե մենք ցանկանում ենք վերագրանցել բոլոր «.txt» ֆայլերը մեր ընթացիկ աշխատանքային գրացուցակում, առանց հաստատման հուշման, մենք կարող ենք օգտագործել՝ cp -f *.txt /backup/:

cp -f *.txt /backup/ 

Սա կպատճի բոլոր «.txt» ֆայլերը ձեր ընթացիկ աշխատանքային գրացուցակից «/backup/» գրացուցակում և կվերագրի առկա բոլոր ֆայլերը՝ առանց հուշման: Այս մեթոդն օգտագործելիս անհրաժեշտ է զգույշ լինել, քանի որ այն կարող է հանգեցնել ֆայլի չնախատեսված վերագրանցման կամ ջնջման, եթե այն ճիշտ չօգտագործվի:

Միշտ լավ պրակտիկա է ձեր հրամանները փորձարկել փոքր թվով թեստային ֆայլերի վրա, նախքան դրանք գործարկելը կարևոր տվյալների վրա: Եթե վստահ չեք, թե կոնկրետ ինչ հրամաններ են անհրաժեշտ ձեր սցենարի կամ տվյալների կառուցվածքի համար, միշտ ավելի ապահով է խորհրդակցել փորձագետի հետ կամ գոնե կարդալ cp հրամանի վերաբերյալ հետագա փաստաթղթերն ու ուղեցույցները:

Հարմարության համար օգտագործելով Bash կեղծանունները

Որպես Linux-ի օգտագործող, դուք հավանաբար ծանոթ եք հրամանի տողի միջոցով անուն-ազգանուններ ստեղծելու հայեցակարգին: Bash կեղծանունները հատուկ դյուրանցումներ են, որոնք կարող են ստեղծվել հաճախակի օգտագործվող հրամանները կամ հրամանների համակցությունները կատարելու համար:

Cp հրամանը բացառություն չէ, և օգտագործելով կեղծանունը, դուք կարող եք զգալիորեն բարելավել ձեր աշխատանքային հոսքը: cp հրամանի համար bash alias-ի ստեղծումը կարող է օգտակար լինել, երբ անհրաժեշտ է կատարել բարդ գործողություններ, որոնք ներառում են բազմաթիվ ֆայլեր և թղթապանակներ:

Օրինակ, ենթադրենք, որ դուք հաճախ պետք է պատճենեք բոլոր ֆայլերը մի գրացուցակից մյուսը, մինչդեռ առկա ֆայլերը վերագրեք առանց հաստատման: Այդ դեպքում դուք կարող եք ստեղծել այլանուն, որը միավորում է և՛ նիշերը, և՛ -f դրոշը, որը մենք քննարկել ենք նախորդ բաժիններում:

Տրամադրել Bash կեղծանունի ստեղծման օրինակ, որը ներառում է և՛ վիթխարի նշաններ, և՛ -f դրոշ

cp հրամանի համար bash alias ստեղծելու համար, ներառյալ նիշերը և -f դրոշը, հետևեք այս քայլերին.

  • Բացեք ձեր տերմինալը:

  • Մուտքագրեք «nano ~/.bashrc»՝ Nano տեքստային խմբագրիչը բացելու համար:

  • Ոլորեք ներքև մինչև ֆայլի ներքևի մաս և ավելացրեք նոր տող ձեր ուզած կեղծանունով:

  • Պահպանեք ձեր փոփոխությունները՝ սեղմելով «CTRL+X», ապա «Y», ապա «ENTER»:

  • Գործարկեք «source ~/.bashrc» հրամանը կամ վերագործարկեք ձեր տերմինալը:

Ահա մի օրինակ, թե ինչպես դա կարելի է իրականացնել −

alias cpo='cp -f /path/to/source/* /path/to/destination/'

Այս օրինակում մենք ստեղծել ենք cpo կոչվող կեղծանունը, որը ներառում է և՛ նիշերի (*) և՛ -f դրոշի ընտրանքներ՝ բոլոր ֆայլերը մի գրացուցակից մյուսը պատճենելու համար, մինչդեռ գոյություն ունեցող ֆայլերը վերագրվում են առանց հաստատման պահանջի: Օգտագործելով այս կեղծանունը` ամեն անգամ, երբ ցանկանում ենք ֆայլերն այս կերպ պատճենել, երկար հրաման մուտքագրելու փոխարեն, մենք ժամանակ ենք խնայում և ընդհանուր առմամբ մեր աշխատանքային հոսքը ավելի արդյունավետ ենք դարձնում:

Եզրակացություն

Cp հրամանը հզոր գործիք է, որը կարող է օգտագործվել հեշտությամբ պատճենելու ֆայլերը և գրացուցակները: Այնուամենայնիվ, դա կարող է հիասթափեցնել, երբ ֆայլերը վերագրանցելուց առաջ հրամանը հուշում է հաստատել: Բարեբախտաբար, կան եղանակներ՝ ստիպելու վերագրանցել առանց հաստատման՝ օգտագործելով -f դրոշը կամ wildcards cp հրամանով:

-f դրոշն օգտագործելիս անհրաժեշտ է զգույշ լինել, քանի որ այն ստիպում է վերագրել առանց որևէ հուշման կամ նախազգուշացման: Հետևաբար, կարևոր է կրկնակի ստուգել հրամանը նախքան այն կատարելը:

Մյուս կողմից, wildcards-ը կարող է ժամանակ խնայել՝ միաժամանակ մի քանի ֆայլեր համապատասխանեցնելով և առանց հաստատման պատճենելու դրանք: Bash կեղծանունների օգտագործումը կարող է նաև ավելի հարմար դարձնել այս հրամանների օգտագործումը: