Ինչպե՞ս ջնջել ֆայլերը և գրացուցակները Linux տերմինալում: RMDIR (RD) հրաման – ջնջել Windows ֆայլային համակարգի գրացուցակը Ջնջել Linux-ի թղթապանակը վահանակից


rm և rmdir հրամանները ջնջում են ֆայլերը և գրացուցակները Linux, macOS և Unix-ի նման այլ օպերացիոն համակարգերում: Դրանք նման են Windows-ի և DOS-ի del և deltree հրամաններին: Այս հրամանները շատ հզոր են և ունեն բավականին շատ տարբերակներ:

Կարևոր է նշել, որ rm-ի և rmdir-ի միջոցով ջնջված ֆայլերը և գրացուցակները չեն տեղափոխվում թափոնարկղ: Նրանք անմիջապես հեռացվում են ձեր համակարգչից: Եթե ​​դուք պատահաբար ջնջել եք ֆայլերը՝ օգտագործելով այս հրամանները, դուք կկարողանաք վերականգնել դրանք միայն կրկնօրինակից:

Ինչպես ջնջել ֆայլերը՝ օգտագործելով rm

Ամենապարզ դեպքը ընթացիկ գրացուցակում մեկ ֆայլ ջնջելն է: Մուտքագրեք rm հրամանը, բացատ և այնուհետև այն ֆայլի անունը, որը ցանկանում եք ջնջել:

Rm file_1.txt

Եթե ​​ֆայլը ընթացիկ աշխատանքային գրացուցակում չէ, տրամադրեք ֆայլի գտնվելու վայրի ուղին:

Rm ./path/to/the/file/file_1.txt

Դուք կարող եք մեկից ավելի ֆայլի անուն փոխանցել rm-ին: Սա ջնջում է բոլոր նշված ֆայլերը:

Rm file_2.txt file_3.txt

Wildcards-ը կարող է օգտագործվել ջնջվող ֆայլերի խմբեր ընտրելու համար: Նշան * ներկայացնում է մի քանի նիշ, և կերպարը ? ներկայացնում է մեկ կերպար. Այս հրամանը կջնջի բոլոր png պատկերային ֆայլերը ընթացիկ աշխատանքային գրացուցակում:

Rm * .png

Այս հրամանը կջնջի բոլոր ֆայլերը նույն նիշերի ընդլայնմամբ: Օրինակ, սա կջնջի File.1-ը և File.2-ը, բայց ոչ File.12-ը:

Rm *.?

Եթե ​​ֆայլը պաշտպանված է գրելուց, ձեզ կառաջարկվի ջնջել ֆայլը: Դուք պետք է պատասխանեք yկամ nև սեղմեք «Enter»:

rm-ի նիշերով օգտագործելու ռիսկը նվազեցնելու համար օգտագործեք տարբերակը (ինտերակտիվ): Դա անելու համար դուք պետք է հաստատեք յուրաքանչյուր ֆայլի ջնջումը:

Rm -i * .dat

Տարբերակ (ուժը) ինտերակտիվին հակառակն է: Այն չի պահանջում հաստատում, նույնիսկ եթե ֆայլերը պաշտպանված են գրությունից:

Rm -f ֆայլի անունը

Ինչպես հեռացնել դիրեկտորիաները՝ օգտագործելով rm

Դատարկ գրացուցակը հեռացնելու համար օգտագործեք տարբերակը (տեղեկատու): Գրացուցակների անուններում դուք կարող եք օգտագործել wildcards (* և ?) ճիշտ այնպես, ինչպես ֆայլերի անուններում:

Rm -d գրացուցակ

Մեկից ավելի գրացուցակի անուններ տրամադրելը կհեռացնի բոլոր նշված դատարկ գրացուցակները:

Rm -d տեղեկատու1 տեղեկատու2 /ուղի/դեպի/դիրեկտորիա3

Ոչ դատարկ գրացուցակները հեռացնելու համար օգտագործեք տարբերակը (ռեկուրսիվ): Որպեսզի պարզ լինի, սա ջնջում է դիրեկտորիաները և դրանցում պարունակվող բոլոր ֆայլերն ու ենթագրքերները:

Rm -r տեղեկատու1 տեղեկատու2 տեղեկատու3

Եթե ​​գրացուցակը կամ ֆայլը գրավոր պաշտպանված է, ձեզ կառաջարկվի հաստատել ջնջումը: Ոչ դատարկ գրացուցակները հեռացնելու և այս հաղորդագրությունները ճնշելու համար օգտագործեք ընտրանքները միասին (ռեկուրսիվ) և (ստիպված):

Rm -rf գրացուցակ

Այստեղ զգուշություն է պահանջվում։ Հրամանի սխալ rm -rfկարող է հանգեցնել տվյալների կորստի կամ համակարգի անսարքության: Սա վտանգավոր է, և զգուշությունը լավագույն քաղաքականությունն է։ Գրացուցակի կառուցվածքի և ֆայլերի մասին պատկերացում կազմելու համար, որոնք կջնջվեն rm-rf-ով, օգտագործեք ծառի հրամանը:

Օգտագործեք apt-get այս փաթեթը ձեր համակարգում տեղադրելու համար, եթե օգտագործում եք Ubuntu կամ այլ Debian-ի վրա հիմնված բաշխում: Linux-ի այլ բաշխումների դեպքում օգտագործեք ձեր Linux բաշխման փաթեթների կառավարման գործիքը:

Sudo apt-get install ծառ

Ծառի հրամանի գործարկումը ստեղծում է գրացուցակի կառուցվածքի և ֆայլերի հեշտ հասկանալի դիագրամ այն ​​գրացուցակի տակ, որտեղից այն գործարկվում է:

Կարող եք նաև նշել ծառի հրամանի ուղին, որպեսզի այն գործարկի ծառը ֆայլային համակարգի մեկ այլ գրացուցակից:

Ծառի ուղի/դեպի/տեղեկատու

rm հրամանն ունի նաև --one-file-system, --no-preserve-root, --preserve-root տարբերակները, բայց դրանք առաջարկվում են միայն առաջադեմ օգտվողների համար: Եթե ​​ինչ-որ բան սխալ եք անում, կարող եք պատահաբար ջնջել ձեր համակարգի բոլոր ֆայլերը:

Ինչպես հեռացնել դիրեկտորիաները՝ օգտագործելով rmdir

Կա ևս մեկ հրաման՝ rmdir, որը կարող եք օգտագործել գրացուցակները հեռացնելու համար: rm-ի և rmdir-ի միջև տարբերությունն այն է, որ rmdir-ը կարող է ջնջել միայն դատարկ գրացուցակները: Այն երբեք չի ջնջի ֆայլերը:

Ամենապարզ դեպքը մեկ դատարկ գրացուցակի ջնջումն է: Ինչպես rm-ի դեպքում, դուք կարող եք փոխանցել բազմաթիվ գրացուցակների անուններ rmdir կամ rmdir գրացուցակի ուղի:

Հեռացրեք մեկ գրացուցակ ընթացիկ գրացուցակից՝ փոխանցելով նրա անունը rmdir-ին.

Rmdir գրացուցակ

Հեռացրեք բազմաթիվ դիրեկտորիաներ՝ անունների ցուցակը փոխանցելով rmdir-ին.

Rmdir տեղեկատու1 տեղեկատու2 տեղեկատու3

Հեռացրեք ընթացիկ գրացուցակում չգտնվող գրացուցակը՝ նշելով դեպի այդ գրացուցակի ամբողջական ուղին.

Rmdir /ուղի/դեպի/տեղեկատու

Եթե ​​փորձեք ջնջել դատարկ թղթապանակ, rmdir-ը ձեզ սխալի հաղորդագրություն կտա: Հետևյալ օրինակում rmdir-ը հաջողությամբ և լուռ ջնջում է հաճախորդների գրացուցակը, բայց հրաժարվում է ջնջել նախագծերի գրացուցակը, քանի որ այն պարունակում է ֆայլեր: Նախագծերի գրացուցակը մնում է ճիշտ այնպես, ինչպես եղել է, և դրա մեջ գտնվող ֆայլերը անձեռնմխելի են:

Երբ rmdir-ը թողարկում է «Տեղեկատուն դատարկ չէ» սխալը, այն դադարեցնում է հրամանի տողում իրեն փոխանցված գրացուցակների մշակումը: Եթե ​​դուք խնդրել եք ջնջել չորս դիրեկտորիա, իսկ առաջինը պարունակում է ֆայլեր, rmdir-ը ձեզ սխալի հաղորդագրություն կտա և այլ բան չի անում: Դուք կարող եք ստիպել նրան անտեսել այս սխալները՝ օգտագործելով --ignore-fail-on-non-empty՝ այլ գրացուցակներ մշակելու համար:

Հետևյալ օրինակում երկու թղթապանակ փոխանցվել է rmdir-ին, դրանք աշխատանք/հաշվետվություններ և աշխատանք/մեջբերումներ են։ Հրամանում ներառված է --ignore-fail-on-non-empty տարբերակը: Work/reports պանակը պարունակում է ֆայլեր, ուստի rmdir-ը չի կարող ջնջել այն: --ignore-fail-on-non-empty տարբերակը ստիպում է rmdir-ին անտեսել սխալը և անցնել հաջորդ թղթապանակին, որը պետք է մշակի, որը work/quotes է: Սա դատարկ թղթապանակ է, և rmdir-ը ջնջում է այն:

Օգտագործվել է այս հրամանը։

Rmdir - անտեսել-ձախողել-ոչ-դատարկ աշխատանք/զեկուցումներ/աշխատանք/մեջբերումներ

Դուք կարող եք օգտագործել տարբերակը -էջ(ծնող) գրացուցակը հեռացնելու և նաև դրա մայր գրացուցակները հեռացնելու համար: Այս հնարքն աշխատում է, քանի որ rmdir-ը սկսվում է թիրախային գրացուցակում և այնուհետև վերադառնում է ծնող: Այս գրացուցակը այժմ պետք է դատարկ լինի, որպեսզի այն հեռացվի rmdir-ի միջոցով, և գործընթացը կրկնում է հետ քայլը rmdir-ի տրամադրած ճանապարհով:

Հետևյալ օրինակում rmdir-ին փոխանցված հրամանը հետևյալն է.

Rmdir -p աշխատանք/հաշիվներ

Հաշիվ-ապրանքագրերը և աշխատանքային գրացուցակները ջնջվում են ըստ պահանջի:

Դուք օգտագործում եք Bash կամ որևէ այլ պատյան: Linux-ը տրամադրում է ճկուն և հզոր հրամաններ՝ դիրեկտորիաներն ու ֆայլերը անմիջապես տերմինալի հրամանի տողից ջնջելու համար: Որոշ մարդիկ նախընտրում են ունենալ աշխատանքային հոսք, որը պտտվում է տերմինալի շուրջ: Մյուսները կարող են այլընտրանք չունենալ այդ հարցում։ Նրանք կարող են աշխատել սերվերների վրա՝ առանց տեղադրված GUI-ի, կամ հեռավոր սեանսի ժամանակ առանձին համակարգում, ինչպիսին Raspberry Pi-ն է: Այս թիմերը կատարյալ են այս խմբի մարդկանց համար:

Բայց ինչ տեսակի աշխատանքային հոսք էլ որ նախընտրեք, այս հրամանները շատ լավ են ընդգրկվելու shell սկրիպտներում: Եթե ​​սկրիպտը աշխատում է cron աշխատանքով, այն կարող է օգնել ավտոմատացնել սովորական տնային գործերը, ինչպիսիք են անցանկալի գրանցամատյանների ֆայլերը մաքրելը: Եթե ​​դուք ուսումնասիրում եք այս օգտագործման դեպքը, տեղյակ եղեք այս հրամանների հզորության մասին, ուշադիր ստուգեք ամեն ինչ և միշտ պահեք վերջին կրկնօրինակը:

Հրամանի տողը հզոր գործիք է ավտոմատացնելու և պարզեցնելու բազմաթիվ առաջադրանքներ, որոնք առաջանում են Windows օպերացիոն համակարգով աշխատող համակարգիչ կառավարելիս: Այս հոդվածում մենք կանդրադառնանք DEL, ERASE, RD և RMDIR հրամաններին: Նրանց օգնությամբ դուք կարող եք ջնջել ֆայլերը և թղթապանակները անմիջապես հրամանի տողից:

Եթե ​​Ձեզ անհրաժեշտ է ջնջել ֆայլը , ապա դուք պետք է օգտագործեք DEL կամ ERASE հրամանը: Այս հրամանները հոմանիշ են և գործում են նույնը: Դուք կարող եք մանրամասն տեղեկություններ ստանալ այս հրամանների մասին, եթե դրանք մուտքագրեք հրամանի տող «/? « Օրինակ, կարող եք մուտքագրել «del/? « և del հրամանի մասին բոլոր հիմնական տեղեկությունները կցուցադրվեն վահանակում:

DEL (կամ ERASE) հրամանը նախատեսված է մեկ կամ մի քանի ֆայլ ջնջելու համար և կարող է ընդունել հետևյալ պարամետրերը.

  • /P – ջնջում յուրաքանչյուր ֆայլի համար հաստատման հարցումով;
  • /F – «միայն կարդալու» հատկանիշով ֆայլերի ջնջում;
  • /S – ջնջում է նշված ֆայլը բոլոր ենթաթղթապանակներից;
  • /Q – ջնջում առանց հաստատման հարցման;
  • /A – ֆայլերի ջնջում՝ ըստ իրենց հատկանիշների;

    • S - համակարգ;
    • H - թաքնված;
    • R – միայն կարդալ;
    • A - արխիվացման համար
    • Կարող եք նաև օգտագործել մինուս «-» նշանը ատրիբուտների դիմաց, որն ունի «ՉԻ» նշանակությունը: Օրինակ, «-S» նշանակում է ոչ համակարգային ֆայլ:

Որպես կանոն, DEL հրամանն օգտագործելու համար նախ պետք է գնալ այն թղթապանակը, որտեղ գտնվում է ջնջվող ֆայլը, այնուհետև գործարկել հրամանը: Սկավառակը փոխելու համար պարզապես անհրաժեշտ է մուտքագրել դրայվի տառը և երկու կետ: Իսկ թղթապանակների միջով շարժվելու համար անհրաժեշտ է օգտագործել «CD» հրամանը:

Երբ դուք գտնվում եք ցանկալի թղթապանակում, կարող եք սկսել ջնջել ֆայլերը: Դա անելու համար պարզապես մուտքագրեք DEL հրամանը և ֆայլի անունը:

Նաև, անհրաժեշտության դեպքում, կարող եք ջնջել ֆայլերը՝ առանց թղթապանակների միջով նավարկելու: Այս դեպքում դուք պետք է նշեք փաստաթղթի ամբողջական ուղին:

Եթե ​​նրանցից յուրաքանչյուրի ֆայլի ջնջումը հաստատելու հարցում կատարելու անհրաժեշտություն կա, ապա DEL հրամանին պետք է ավելացվի «/p» պարամետրը: Այս դեպքում հրամանի տողը ձեզ կհուշի ջնջել ֆայլը, և օգտատերը պետք է մուտքագրի «Y» տառը՝ հաստատելու համար:

Հարկ է նշել, որ «/a» պարամետրն օգտագործելիս ատրիբուտների համար պատասխանատու տառերը պետք է մուտքագրվեն երկու կետով առանձնացված: Օրինակ, «միայն կարդալու» հատկանիշով և «txt» ընդլայնմամբ բոլոր ֆայլերը ջնջելու համար անհրաժեշտ է մուտքագրել հրամանը « del /F /A:R *.txt »:

Դուք կարող եք նմանատիպ այլ պարամետրեր ավելացնել DEL հրամանին: Համակցելով դրանք դուք կարող եք ստեղծել շատ հզոր հրամաններ՝ Windows-ի հրամանի տողի միջոցով ֆայլերը ջնջելու համար: Ստորև ներկայացնում ենք ևս մի քանի օրինակ.

  • del D:\ - ոչնչացնում է բոլոր ֆայլերը D drive-ի արմատում;
  • del D:\*.txt – բոլոր ֆայլերի ոչնչացում txt ընդլայնմամբ D drive-ի արմատում;
  • del D:\doc – d:\doc թղթապանակի բոլոր ֆայլերի ոչնչացում (ատրիբուտներով փաստաթղթերը բաց կթողնեն);
  • del /A:r d:\doc\*.txt – d:\doc թղթապանակում «միայն կարդալու» հատկանիշով և «txt» ընդլայնմամբ բոլոր ֆայլերի ոչնչացում;

Թղթապանակների ջնջում հրամանի տողի միջոցով

Եթե ​​Ձեզ անհրաժեշտ է ջնջել թղթապանակը Windows հրամանի տողի միջոցով, ապա վերը նշված հրամանները ձեզ չեն օգնի: Թղթապանակները հեռացնելու համար կա առանձին հրաման RD կամ RMDIR (կարճ Remove Directory):

RD և RMDIR հրամանները հոմանիշ են և նախատեսված են թղթապանակները ջնջելու համար: Նրանք կարող են ընդունել հետևյալ պարամետրերը.

  • /S - ջնջում է ամբողջ գրացուցակի ծառը; այս պարամետրն օգտագործելիս ոչ միայն ինքնին թղթապանակը կջնջվի, այլև դրա ամբողջ բովանդակությունը.
  • /Q – թղթապանակի ծառի ջնջում առանց հաստատում խնդրելու;

Օրինակ, թղթապանակը ջնջելու համար պարզապես մուտքագրեք RD հրամանը և թղթապանակի անունը:

Եթե ​​թղթապանակը պարունակում է ենթաթղթապանակներ կամ ֆայլեր, ապա այն ջնջելիս կցուցադրվի սխալ»։

Այս խնդիրը լուծելու համար անհրաժեշտ է RD հրամանին ավելացնել «/s» պարամետրը: Այս դեպքում ջնջումն ընթանում է առանց խնդիրների, սակայն հայտնվում է ջնջումը հաստատելու հարցում։

Որպեսզի թղթապանակի ծառը ջնջվի առանց հաստատման հարցումի հայտնվելու, դուք պետք է հրամանին ավելացնեք «/q» պարամետրը: Այս դեպքում թղթապանակը ջնջվում է առանց որևէ հարցի:

Բացի այդ, RD հրամանը կարող է միանգամից մի քանի թղթապանակ ընդունել, դա անելու համար պարզապես անհրաժեշտ է դրանք առանձնացնել բացատով: Օրինակ, եթե դուք կատարում եք «rd 111 222», ապա կարող եք միանգամից ջնջել «111» և «222» անուններով թղթապանակները:

Եթե ​​Ձեզ անհրաժեշտ է հրամանի տողի միջոցով ջնջել թղթապանակը, որն ինքնին պարունակում է բացատ, ապա այս դեպքում դրա անունը պետք է փակցվի կրկնակի չակերտների մեջ:

Համատեղելով DEL և RD հրամանները՝ դուք կարող եք ստեղծել հզոր սցենարներ՝ Windows օպերացիոն համակարգի թղթապանակները մաքրելու և ջնջելու համար:

Linux միջուկի վրա հիմնված օպերացիոն համակարգերը սովորաբար պահում են մեծ թվով դատարկ և ոչ դատարկ գրացուցակներ: Նրանցից ոմանք զբաղեցնում են բավականին մեծ քանակությամբ պահեստային տարածք և հաճախ դառնում են ավելորդ: Այս դեպքում ճիշտ տարբերակը կլինի դրանք հեռացնելը: Մաքրման մի քանի եղանակ կա, որոնցից յուրաքանչյուրը կիրառելի է կոնկրետ իրավիճակում: Եկեք ավելի մանրամասն նայենք առկա բոլոր մեթոդներին, և դուք կընտրեք ամենահարմարը՝ ելնելով ձեր կարիքներից:

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

Նախքան մեթոդները դիտարկելը, կարևոր է նշել, որ հրաման մուտքագրելիս ամենից հաճախ դուք ինքնուրույն նշում եք այն թղթապանակի անունը, որը ցանկանում եք ջնջել: Երբ դուք դրա գտնվելու վայրում չեք, դուք պետք է ապահովեք ամբողջական ուղին: Հնարավորության դեպքում խորհուրդ ենք տալիս պարզել օբյեկտի մայր գրացուցակը և գնալ դեպի այն վահանակի միջոցով: Այս գործողությունն ավարտվում է ընդամենը մի քանի րոպեում.


Եթե ​​դուք չեք կարողանում որոշել գտնվելու վայրը, ջնջելիս դուք պետք է ինքներդ մուտքագրեք ամբողջական ուղին, այնպես որ դուք պետք է իմանաք այն:

Մեթոդ 1. Ստանդարտ տերմինալի հրամաններ

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

rmdir հրաման

Նախ կուզենայի անդրադառնալ rmdir-ին։ Այն նախատեսված է համակարգը մաքրելու միայն դատարկ գրացուցակներից: Հեռացնում է դրանք ընդմիշտ, և այս գործիքի առավելությունը նրա շարահյուսության պարզությունն է և որևէ սխալի բացակայությունը: Վահանակում պարզապես գրեք rmdir folder , որտեղ թղթապանակ— թղթապանակի անունը ընթացիկ վայրում: Գործիքը ակտիվանում է ստեղնը սեղմելով Մուտքագրեք.

Ոչինչ ձեզ չի խանգարում նշելու ամբողջական գրացուցակի ուղին, եթե չկարողանաք նավարկել դեպի այն վայրը, որը ցանկանում եք կամ դրա կարիքը չունեք: Այնուհետև տողը վերցնում է, օրինակ, հետևյալ ձևը՝ rmdir /home/user/folder/folder1, որտեղ օգտագործող- Օգտագործողի անունը, թղթապանակմայր գրացուցակն է, և թղթապանակ 1— թղթապանակ ջնջելու համար: Խնդրում ենք նկատի ունենալ, որ նախքան տունը պետք է լինի շեղ, բայց ճանապարհի վերջում չպետք է լինի շեղ:

rm հրամանը

Նախորդ գործիքը rm utility-ի բաղադրիչներից մեկն է: Սկզբում այն ​​նախատեսված է ֆայլերը ջնջելու համար, բայց եթե դրան համապատասխան արգումենտ տաս, այն նաև կջնջի թղթապանակը։ Այս տարբերակն արդեն հարմար է ոչ դատարկ դիրեկտորիաների համար, այս դեպքում դուք պետք է մուտքագրեք rm -R թղթապանակը (կամ դեպի գրացուցակի ամբողջական ուղին) վահանակ: Նշեք փաստարկը - այն սկսում է ռեկուրսիվ ջնջում, այսինքն՝ ազդում է թղթապանակի ամբողջ բովանդակության և ինքն իր վրա։ Մուտք գործելու ժամանակ անհրաժեշտ է ուշադիր լինել, քանի որ - Սա բոլորովին այլ տարբերակ է:

Եթե ​​ցանկանում եք ցուցադրել բոլոր ջնջված ֆայլերի և թղթապանակների ցանկը rm-ն օգտագործելիս, ապա ձեզ հարկավոր է մի փոքր փոփոխել տողը: Մուտք գործեք «Տերմինալ» rm -Rfv թղթապանակը և այնուհետև ակտիվացրեք հրամանը:

Ջնջումն ավարտվելուց հետո կցուցադրվեն տեղեկությունները բոլոր դիրեկտորիաների և առանձին օբյեկտների մասին, որոնք նախկինում գտնվում էին նշված վայրում:

գտնել հրաման

Մեր կայքէջն արդեն ունի նյութեր՝ գտնելու օրինակներով օպերացիոն համակարգերում, որոնք մշակվել են Linux միջուկում: Իհարկե, այնտեղ ներկայացված է միայն հիմնական և ամենաօգտակար տեղեկատվությունը։ Դրան կարող եք ծանոթանալ՝ սեղմելով հետևյալ հղումը, իսկ այժմ առաջարկում ենք պարզել, թե ինչպես է աշխատում այս գործիքը, երբ անհրաժեշտ է ջնջել գրացուցակները։

  1. Ինչպես հայտնի է, գտնելծառայում է համակարգի ներսում օբյեկտների որոնմանը: Լրացուցիչ ընտրանքների օգտագործման շնորհիվ կարող եք գտնել կոնկրետ անունով դիրեկտորիաներ և անմիջապես ջնջել դրանք: Դա անելու համար մխիթարիչում մուտքագրեք Find: -type d -name "folder" -exec rm -rf () \;, որտեղ թղթապանակը գրացուցակի անունն է: Դա անելիս անպայման գրեք կրկնակի մեջբերումներ:
  2. Առանձին տող երբեմն ցուցադրում է տեղեկատվություն, որ նման ֆայլ կամ գրացուցակ գոյություն չունի, բայց դա չի նշանակում, որ այն չի գտնվել: Պարզապես գտնելնորից աշխատեց գրացուցակը համակարգից ջնջելուց հետո:
  3. find ~/ -empty -type d -delete-ը թույլ է տալիս ջնջել համակարգի բոլոր դատարկ թղթապանակները: Դրանցից ոմանք հասանելի են միայն գերօգտագործողի համար, ուստի նախկինում գտնել sudo պետք է ավելացնել.
  4. Բոլոր հայտնաբերված օբյեկտների և գործողության հաջողության մասին տվյալները կհայտնվեն էկրանին:
  5. Դուք կարող եք նաև նշել միայն հատուկ գրացուցակ գործիքի որոնման և մաքրման համար: Այնուհետև տողը կունենա, օրինակ, այսպիսի տեսք՝ գտնել /home/user/Folder/ -empty -type d -delete :

Սա ավարտում է փոխգործակցությունը Linux-ի ստանդարտ կոնսոլային կոմունալ ծառայությունների հետ: Ինչպես տեսնում եք, դրանք շատ են, և յուրաքանչյուրը կիրառելի է որոշակի իրավիճակներում: Եթե ​​ցանկանում եք ծանոթանալ այլ հանրաճանաչ թիմերի հետ, կարդացեք մեր առանձին նյութը ստորև նշված հղումով։

Բարի օր, սիրելի ընթերցողներ։ Այսօր ես կցանկանայի խոսել PHP-ում գրացուցակը ջնջելու մասին: Թվում է, թե վիրահատությունը բարդ չէ, բայց կան որոշ նրբերանգներ: Դիտարկենք դա անելու ուղիները:

PHP-ն դրա համար ունի ֆունկցիա rmdir (). Որպես փաստարկ այն վերցնում է դեպի այն գրացուցակը, որը ցանկանում եք ջնջել: Այնուամենայնիվ, գրացուցակը պետք է դատարկ լինի- սա հիմնական պայմանն է (բացառությամբ այն բանի, որ օգտվողը, որից աշխատում է վեբ սերվերը, պետք է գրացուցակի համար գրելու իրավունքներ ունենա): Եթե ​​ֆայլերը տեղադրվեն գրացուցակում, ֆունկցիան կանչելիս սխալ կստանանք: Ըստ այդմ, մենք գալիս ենք այն եզրակացության, որ գրացուցակը նախքան գործառույթն օգտագործելը rmdir ()նախ պետք է մաքրել.

Առցանց նրանք խորհուրդ են տալիս գրել մի ֆունկցիա, որը որպես փաստարկ կփոխանցի դեպի այն գրացուցակի ուղին, որը մենք պետք է ջնջենք: Ֆունկցիայի մարմնում անհրաժեշտ է կազմակերպել գրացուցակի բովանդակության ցուցակագրում, որի շրջանակներում ստուգում է կատարվում՝ պարզելու, թե արդյոք ֆայլը գրացուցակ է։ Եթե ​​ֆայլը գրացուցակ է, ապա ֆունկցիան իրեն կանչում է այս պայմանի հիման վրա: Սա անհրաժեշտ է զտված գրացուցակները մաքրելու համար, և այն կաշխատի բոլոր բույնի մակարդակներում: Հակառակ դեպքում գործառույթը կիրառվում է ֆայլի վրա անջատել ()- այն նախատեսված է ֆայլը ջնջելու համար: Այս ստուգումից դուրս, վերջին քայլում մենք ջնջում ենք գրացուցակը:

Իրականացման օրինակ.

RecursiveRemoveDir($dir) ֆունկցիա ($includes = glob($dir."/*"); foreach ($includes as $include) ( if(is_dir($include)) ( recursiveRemoveDir($include); ) else ( unlink( $include);)) rmdir($dir);) //Հեռացնել tmp գրացուցակը ընթացիկ գրացուցակից recursiveRemoveDir("tmp");
Ի՞նչ խնդիրներ ունի այս կոդը:

Պարզ դեպքերում բոլոր հավելվածներով գրացուցակը կջնջվի: Բայց ենթադրենք, որ մեր գրացուցակում կա մի թաքնված ֆայլ, որը սկսվում է կետով, օրինակ. .htaccess. Գործառույթ գլոբ () UNIX գլոբի փոխարինում է, որը լռելյայնորեն չի ներառում թաքնված ֆայլերը (DOTFILES): Օրինակ, եթե մենք գնանք nix տերմինալ և օգտագործենք bash, մենք կհանդիպենք նույն խնդրին (խոսքը թաքնված ֆայլերի մասին է գլոբուսների ներսում): Այս խնդիրը լուծելու համար bash-ում կա հրաման. shopt -s dotglob- այն թույլ է տալիս թաքնված ֆայլերի գլոբը փոխարինել: PHP-ում դա կարելի է լուծել՝ ավելացնելով լրացուցիչ պարամետր GLOB_BRACEՀամար գլոբ ()և ընդլայնելով օրինաչափությունը ֆունկցիայի առաջին պարամետրից:

$includes = glob("tmp/(,.)*", GLOB_BRACE);
Եվ այստեղ կա նաև խնդիր՝ մենք կհանդիպենք անսահման օղակի, քանի որ զանգվածը կներառի արժեքներ։ and.. - որը հանդիսանում է ընթացիկ և մայր գրացուցակը համակարգի մակարդակով: Մենք կհայտնվենք անսահման հանգույցով (և չջնջենք բոլոր մայր դիրեկտորիաները), քանի որ. Որպես լռելյայն տեսակավորման մաս, առաջացած զանգվածը կգա առաջինը... - այսինքն, ամեն անգամ, երբ մենք մուտք ենք գործում նույն գրացուցակը: Խնդիրը լուծելու համար մենք կձևավորենք զանգված այս համակարգի դիրեկտորիաներից և ցիկլով կհեռացնենք դրանց ինդեքսները հիմնական զանգվածից: Կա նաև խորհրդանշական կապերի խնդիր։ Ենթադրենք, որ ջնջվող գրացուցակը պարունակում է մեկ այլ գրացուցակի հղում, որի բովանդակությունը մենք բացարձակապես շահագրգռված չենք ջնջել։ Խնդիրը լուծելու համար, նախքան ռեկուրսիա ստեղծելը, անհրաժեշտ է ստուգել, ​​որ սուբյեկտը հղում չէ։

Արդյունքում ֆունկցիան ստանում է հետևյալ ձևը.

RecursiveRemoveDir($dir) ֆունկցիա ($includes = glob($dir."/(,.)*", GLOB_BRACE); $systemDots = preg_grep("/\.+$/", $includes); foreach ($systemDots որպես $index => $dot) ( unset($includes[$index]); ) foreach ($includes as $include) ( if(is_dir($include) && !is_link($include)) ( recursiveRemoveDir($include); ) else ( unlink($include); ) ) rmdir($dir); ) //Հեռացնել tmp գրացուցակը ընթացիկ գրացուցակից recursiveRemoveDir("tmp");
Կոդն աշխատում է, բայց իրականում այն ​​կարելի էր ավելի պարզեցնել: PHP-ում կա FilesystemIterator դաս, որը լռելյայն արդեն ունի մեզ անհրաժեշտ կարգավորումները։ Ուղին դեպի գրացուցակ, որի ցուցակը մեզ անհրաժեշտ է, փոխանցվում է կոնստրուկտորին: Պարզապես պետք է օբյեկտ ստեղծել:

RecursiveRemoveDir($dir) ֆունկցիան ( $includes = new FilesystemIterator($dir); foreach ($includes as $include) ( if(is_dir($include) && !is_link($include)) ( recursiveRemoveDir($include); ) ուրիշ ( unlink($include);) ) rmdir($dir);) //Հեռացնել tmp գրացուցակը ընթացիկ գրացուցակից recursiveRemoveDir("tmp");
Եզրափակելով, ես կցանկանայի նշել ևս մեկ արագ ճանապարհ. Դրա օգտագործման ճիշտությունը շատ կասկածելի է. ուղարկեք կատարման հրամանը SHELL-ին:

Համակարգ ("rm -rf tmp");
Ցանկանում եմ ձեր ուշադրությունը հրավիրել հիշողության մեծ սպառման և այն փաստի վրա, որ ադմինիստրատորները հաճախ արգելում են նման գործառույթների օգտագործումը սերվերում անվտանգության նկատառումներով:

Պիտակներ՝ php, rmdir, glob, ռեկուրսիա

Թիմ rmdirկօգնի մեզ ջնջել դատարկ գրացուցակը, այսինքն՝ առանց ֆայլերի և թղթապանակների գրացուցակ: Հրամանի շարահյուսությունը շատ պարզ է.

Rmdir DIRNAME

Եթե ​​գրացուցակը դատարկ չէ, կտեսնեք հետևյալ սխալ հաղորդագրությունը.

$ rmdir test rmdir. չհաջողվեց հեռացնել «test»-ը. Տեղեկատուն դատարկ չէ

2. Ինչպե՞ս ջնջել ներդիր դիրեկտորիաները Linux-ում:

Օգտագործելով տարբերակը -էջդուք կարող եք ջնջել գրացուցակը, որի մեջ տեղադրված է ենթագրանց:

$ rmdir -p dir1/dir2/dir3

Թիմ rmdir -p dir1/dir2/dir3սա հրամանի համարժեքն է

$ rmdir dir1/dir2/dir3 dir1/dir2 dir1

3. Բովանդակության գրացուցակի ջնջում

Եթե ​​Ձեզ անհրաժեշտ է ջնջել բովանդակությամբ գրացուցակը, կարող եք օգտագործել հրամանը rm:

$ rm -rf DIRNAME

Այս հրամանը կջնջի գրացուցակը, ներառյալ բոլոր ֆայլերը և ենթագրքերները, որոնք պարունակում են: Օգտագործեք այս հրամանը զգուշությամբ, քանի որ ջնջված ֆայլերը վերականգնելը հեշտ ընթացակարգ չի լինի:

4. Ինտերակտիվ հեռացում

Անհրաժեշտ ֆայլերը պատահաբար ջնջելուց խուսափելու համար խորհուրդ եմ տալիս օգտագործել -i տարբերակը ինտերակտիվ կերպով ջնջելու ֆայլերը և թղթապանակները (հատկապես արմատային իրավունքներով):

Ռեկուրսիվ և ինտերակտիվ գրացուցակի ջնջում:

# rm -ir DIRNAME

Ինտերակտիվ ֆայլի ջնջում:

# rm -i FILENAME

5. Օգտակար փոխանուններ rm և rmdir հրամանների համար

Դուք կարող եք օգտագործել ինտերակտիվ ջնջումը որպես rm հրամանի լռելյայն վարքագիծ:

Այլանուն՝ rm-ն անընդհատ ինտերակտիվ կերպով կատարելու համար

# alias rm="rm -i"

Հրամանն օգտագործելիս rmհրամանն իրականում կկատարվի rm -i. Բայց պետք է ուշադրություն դարձնել մեկ նրբերանգի վրա. Մի օգտագործեք -i տարբերակը ապագայում, քանի որ չեք ստանա ցանկալի էֆեկտը: Դիտարկենք օրինակ.

Հետևյալ հրամանում -i-ի օգտագործումը ձեզ չի տա սպասված էֆեկտը..

$ rm -irf DIRNAME

Այս դեպքում, երբ օգտագործվում է alias, վերը նշված հրամանը պետք է գործարկվի հետևյալ կերպ.

$ rm -rf DIRNAME

Ստորև բերված բոլոր հրամանները համարժեք են և կատարում են նույն գործառույթը:

  • rm-fr
  • rm -rf
  • rm -r -f
  • rm -f -r

Եթե ​​Ձեզ անհրաժեշտ է շենքի փորձագիտական ​​գնահատում, խորհուրդ եմ տալիս պատվիրել պատրաստի շենքերի ստուգում Տեխնոպլաստ գիտաարտադրական կենտրոնի մասնագետների կողմից: