როგორ წაშალოთ ფაილები და დირექტორიები Linux ტერმინალში? RMDIR (RD) ბრძანება – წაშალეთ Windows ფაილური სისტემის დირექტორია წაშალეთ საქაღალდე Linux-ში კონსოლიდან


rm და rmdir ბრძანებები წაშალეთ ფაილები და დირექტორიები Linux-ზე, macOS-ზე და სხვა Unix-ის მსგავს ოპერაციულ სისტემებზე. ისინი ჰგავს del და deltree ბრძანებებს Windows-სა და DOS-ში. ეს ბრძანებები ძალიან ძლიერია და საკმაოდ ბევრი ვარიანტი აქვს.

მნიშვნელოვანია აღინიშნოს, რომ rm-ისა და rmdir-ის გამოყენებით წაშლილი ფაილები და დირექტორიები არ გადატანილა Recycle Bin-ში. ისინი დაუყოვნებლივ ამოღებულია თქვენი კომპიუტერიდან. თუ თქვენ შემთხვევით წაშალეთ ფაილები ამ ბრძანებების გამოყენებით, თქვენ შეძლებთ მათ აღდგენას მხოლოდ სარეზერვო ასლიდან.

როგორ წაშალოთ ფაილები 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.

რმ *.?

თუ ფაილი დაცულია ჩაწერისგან, თქვენ მოგეთხოვებათ ფაილის წაშლა. თქვენ უნდა უპასუხოთ ან და დააჭირეთ "Enter".

rm-ის გამოყენების რისკის შესამცირებლად, გამოიყენეთ ეს ვარიანტი -მე(ინტერაქტიული). ამისათვის თქვენ უნდა დაადასტუროთ თითოეული ფაილის წაშლა.

რმ -ი * .დათ

ვარიანტი -ვ(ძალა) არის ინტერაქტიულის საპირისპირო. ის არ ითხოვს დადასტურებას მაშინაც კი, თუ ფაილები დაცულია ჩაწერისგან.

Rm -f ფაილის სახელი

როგორ ამოიღოთ დირექტორიები rm-ის გამოყენებით

ცარიელი დირექტორია, გამოიყენეთ ეს ვარიანტი -დ(ცნობარი). თქვენ შეგიძლიათ გამოიყენოთ wildcards (* და ?) დირექტორიების სახელებში ისევე, როგორც ფაილების სახელებში.

Rm -d დირექტორია

ერთზე მეტი დირექტორია სახელის მიწოდება წაშლის ყველა მითითებულ ცარიელ დირექტორიას.

Rm -d დირექტორია1 დირექტორია2 /path/to/directory3

ცარიელი დირექტორიების წასაშლელად გამოიყენეთ ვარიანტი -რ(რეკურსიული). გასაგებად რომ ვთქვათ, ეს წაშლის დირექტორიებს და მათში შემავალ ყველა ფაილსა და ქვედირექტორიას.

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 გამოსცემს შეცდომას "Directory not ცარიელი", ის წყვეტს მასზე გადაცემული დირექტორიების დამუშავებას ბრძანების ხაზზე. თუ თქვენ გთხოვეთ ოთხი დირექტორიის წაშლა და პირველი შეიცავდა ფაილებს, rmdir მოგცემთ შეცდომის შეტყობინებას და სხვას არაფერს გააკეთებს. თქვენ შეგიძლიათ აიძულოთ ის იგნორირება გაუკეთოს ამ შეცდომებს --ignore-fail-on-non-empty სხვა დირექტორიების დასამუშავებლად.

შემდეგ მაგალითში ორი საქაღალდე გადატანილია rmdir-ში, ეს არის სამუშაო/ანგარიშები და სამუშაო/ციტატები. --ignore-fail-on-non-empty ვარიანტი შედის ბრძანებაში. სამუშაო/ანგარიშების საქაღალდე შეიცავს ფაილებს, ამიტომ rmdir ვერ წაშლის მას. --ignore-fail-on-non-empty ოფცია იწვევს rmdir-ს შეცდომის იგნორირებას და გადადის შემდეგ საქაღალდეზე, რომელიც უნდა დაამუშავოს, ეს არის work/quotes. ეს ცარიელი საქაღალდეა და rmdir შლის მას.

ეს ბრძანება იყო გამოყენებული.

Rmdir --იგნორირება-ჩავარდნა-არა-ცარიელ სამუშაოზე/მოხსენებები /სამუშაო/ციტატები

შეგიძლიათ გამოიყენოთ ვარიანტი -გვ(მშობელი) დირექტორიის წასაშლელად და ასევე მისი მშობელი დირექტორიების ამოსაღებად. ეს ხრიკი მუშაობს, რადგან rmdir იწყება სამიზნე დირექტორიაში და შემდეგ უბრუნდება მშობელს. ეს დირექტორია ახლა ცარიელი უნდა იყოს, რათა ის წაიშალოს rmdir-ით და პროცესი გაიმეოროს უკან გადადგმული ნაბიჯი rmdir-ის მიერ მოწოდებული ბილიკის გასწვრივ.

შემდეგ მაგალითში, rmdir-ზე გადაცემული ბრძანება არის:

Rmdir -p სამუშაო/ინვოისები

ინვოისები და სამუშაო დირექტორიები იშლება მოთხოვნისთანავე.

იყენებთ Bash-ს ან სხვა რომელიმე ჭურვს? Linux უზრუნველყოფს მოქნილ და მძლავრ ბრძანებებს დირექტორიებისა და ფაილების წასაშლელად პირდაპირ ტერმინალის ბრძანების ხაზიდან. ზოგიერთ ადამიანს ურჩევნია ჰქონდეს სამუშაო პროცესი, რომელიც ბრუნავს ტერმინალის გარშემო. სხვას შეიძლება არ ჰქონდეს არჩევანი ამ საკითხში. მათ შეუძლიათ იმუშაონ სერვერებზე დაყენებული GUI-ის გარეშე, ან დისტანციურ სესიაზე დამოუკიდებელ სისტემაზე, როგორიცაა Raspberry Pi. ეს გუნდები შესანიშნავია ამ ჯგუფისთვის.

მაგრამ რა ტიპის სამუშაო პროცესს გირჩევნიათ, ეს ბრძანებები ძალიან კარგად არის შეტანილი shell სკრიპტებში. თუ სკრიპტს აწარმოებს cron სამუშაო, მას შეუძლია დაეხმაროს რუტინული საყოფაცხოვრებო ამოცანების ავტომატიზაციას, როგორიცაა არასასურველი ჟურნალის ფაილების გასუფთავება. თუ თქვენ იკვლევთ ამ გამოყენების შემთხვევას, გაითვალისწინეთ ამ ბრძანებების ძალა, ყურადღებით შეამოწმეთ ყველაფერი და ყოველთვის შეინახეთ ბოლო სარეზერვო ასლი.

Command Line არის ძლიერი ინსტრუმენტი ავტომატიზაციისა და მრავალი ამოცანის გასამარტივებლად, რომლებიც წარმოიქმნება 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 root-ში;
  • del D:\*.txt – ყველა ფაილის განადგურება txt გაფართოებით D დისკის ძირში;
  • del D:\doc – d:\doc საქაღალდეში არსებული ყველა ფაილის განადგურება (ატრიბუტების მქონე დოკუმენტები გამოტოვებული იქნება);
  • del /A:r d:\doc\*.txt – d:\doc საქაღალდეში „მხოლოდ წაკითხვის“ ატრიბუტით და „txt“ გაფართოებით ყველა ფაილის განადგურება;

საქაღალდეების წაშლა ბრძანების ხაზის საშუალებით

თუ თქვენ გჭირდებათ საქაღალდის წაშლა Windows ბრძანების ხაზის საშუალებით, მაშინ ზემოთ მოცემული ბრძანებები არ გამოგადგებათ. საქაღალდეების წასაშლელად არის ცალკე ბრძანება RD ან RMDIR (მოკლედ Remove Directory).

RD და RMDIR ბრძანებები სინონიმებია და გამიზნულია საქაღალდეების წასაშლელად. მათ შეუძლიათ მიიღონ შემდეგი პარამეტრები:

  • /S - წაშლის მთელ დირექტორიას ხეს; ამ პარამეტრის გამოყენებისას წაიშლება არა მხოლოდ თავად საქაღალდე, არამედ მთელი მისი შინაარსი;
  • /Q – საქაღალდის ხის წაშლა დადასტურების მოთხოვნის გარეშე;

მაგალითად, საქაღალდის წასაშლელად, უბრალოდ შეიყვანეთ RD ბრძანება და საქაღალდის სახელი.

თუ საქაღალდე შეიცავს ქვესაქაღალდეებს ან ფაილებს, მისი წაშლისას გამოჩნდება შეცდომა."

ამ პრობლემის გადასაჭრელად, თქვენ უნდა დაამატოთ "/s" პარამეტრი RD ბრძანებაში. ამ შემთხვევაში წაშლა უპრობლემოდ მიმდინარეობს, მაგრამ ჩნდება წაშლის დადასტურების მოთხოვნა.

იმისათვის, რომ საქაღალდის ხე წაიშალოს დადასტურების მოთხოვნის გარეშე, თქვენ უნდა დაამატოთ ბრძანებას "/q" პარამეტრი. ამ შემთხვევაში, საქაღალდე წაიშლება ყოველგვარი კითხვების გარეშე.

ასევე, RD ბრძანებას შეუძლია ერთდროულად მიიღოს რამდენიმე საქაღალდე; ამისათვის თქვენ უბრალოდ უნდა გამოყოთ ისინი სივრცეში. მაგალითად, თუ შეასრულებთ „rd 111 222“, მაშინ შეგიძლიათ ერთდროულად წაშალოთ საქაღალდეები სახელად „111“ და „222“.

თუ თქვენ გჭირდებათ საქაღალდის წაშლა ბრძანების სტრიქონიდან, რომელიც თავისთავად შეიცავს სივრცეს, მაშინ ამ შემთხვევაში მისი სახელი უნდა იყოს ჩასმული ორმაგ ბრჭყალებში.

DEL და RD ბრძანებების კომბინაციით, შეგიძლიათ შექმნათ ძლიერი სკრიპტები Windows ოპერაციული სისტემის საქაღალდეების გასასუფთავებლად და წასაშლელად.

Linux-ის ბირთვზე დაფუძნებული ოპერაციული სისტემები ჩვეულებრივ ინახავს ცარიელ და არაცარიელ დირექტორიათა დიდ რაოდენობას. ზოგიერთი მათგანი იკავებს საკმაოდ დიდ ადგილს და ხშირად ხდება არასაჭირო. ამ შემთხვევაში, სწორი ვარიანტი იქნება მათი ამოღება. დასუფთავების რამდენიმე გზა არსებობს, თითოეული მათგანი გამოიყენება კონკრეტულ სიტუაციაში. მოდით განვიხილოთ ყველა არსებული მეთოდი უფრო დეტალურად და თქვენ აირჩევთ ყველაზე შესაფერისს თქვენი საჭიროებიდან გამომდინარე.

ამ სტატიაში ვისაუბრებთ კონსოლის კომუნალურ და დამატებით ინსტრუმენტებზე, რომლებიც გაშვებულია ბრძანებების შეყვანით. თუმცა, არ უნდა დაგვავიწყდეს, რომ გრაფიკული ჭურვები ხშირად ხორციელდება დისტრიბუციაში. შესაბამისად, დირექტორიის წასაშლელად, თქვენ უბრალოდ უნდა შეხვიდეთ მასში ფაილის მენეჯერის საშუალებით, დააწკაპუნეთ მაუსის მარჯვენა ღილაკით ხატულაზე და აირჩიეთ "წაშლა". არ დაგავიწყდეთ ნაგვის დაცლა ამის შემდეგ. თუმცა, ეს ვარიანტი არ იქნება გამოყენებული ყველა მომხმარებლისთვის, ამიტომ გირჩევთ, წაიკითხოთ შემდეგი სახელმძღვანელო.

სანამ დაიწყებთ მეთოდების დათვალიერებას, მნიშვნელოვანია აღინიშნოს, რომ ბრძანების შეყვანისას, ყველაზე ხშირად თქვენ დამოუკიდებლად მიუთითებთ იმ საქაღალდის სახელს, რომლის წაშლა გსურთ. როდესაც თქვენ არ ხართ მის ადგილას, თქვენ უნდა მიაწოდოთ სრული გზა. თუ ეს შესაძლებელია, ჩვენ გირჩევთ გაეცნოთ ობიექტის მშობლის დირექტორიას და გადახვიდეთ მას კონსოლის საშუალებით. ეს მოქმედება სრულდება რამდენიმე წუთში:


თუ ვერ ახერხებთ მდებარეობის განსაზღვრას, წაშლისას თქვენ თავად მოგიწევთ სრული ბილიკის შეყვანა, ასე რომ თქვენ უნდა იცოდეთ იგი.

მეთოდი 1: სტანდარტული ტერმინალის ბრძანებები

ნებისმიერი Linux დისტრიბუციის ბრძანების გარსი შეიცავს ძირითადი კომუნალური და ხელსაწყოების ერთობლიობას, რომელიც საშუალებას გაძლევთ განახორციელოთ მრავალფეროვანი მოქმედებები სისტემის პარამეტრებთან და ფაილებთან, მათ შორის დირექტორიების წაშლით. არსებობს რამდენიმე ასეთი კომუნალური პროგრამა და თითოეული მათგანი ყველაზე სასარგებლო იქნება გარკვეულ სიტუაციაში.

rmdir ბრძანება

პირველ რიგში, მინდა შევეხო rmdir-ს. იგი შექმნილია სისტემის გასასუფთავებლად მხოლოდ ცარიელი დირექტორიებიდან. შლის მათ სამუდამოდ და ამ ხელსაწყოს უპირატესობა არის მისი სინტაქსის სიმარტივე და რაიმე შეცდომის არარსებობა. კონსოლში უბრალოდ ჩაწერეთ rmdir საქაღალდე, სადაც საქაღალდე— საქაღალდის სახელი მიმდინარე ადგილას. ინსტრუმენტი გააქტიურებულია ღილაკის დაჭერით შედი.

არაფერი გიშლით ხელს, მიუთითოთ სრული დირექტორია გზა, თუ არ შეგიძლიათ ნავიგაცია იმ ადგილას, სადაც გსურთ ან არ გჭირდებათ. შემდეგ ხაზი იღებს, მაგალითად, შემდეგ ფორმას: rmdir /home/user/folder/folder1 , სადაც მომხმარებელი- მომხმარებლის სახელი, საქაღალდეარის მშობლის დირექტორია და საქაღალდე 1- საქაღალდე წასაშლელად. გთხოვთ გაითვალისწინოთ, რომ სახლამდე უნდა იყოს ხაზი, მაგრამ ბილიკის ბოლოს არ უნდა იყოს დახრილი.

rm ბრძანება

წინა ინსტრუმენტი არის rm უტილიტის ერთ-ერთი კომპონენტი. თავდაპირველად ის გამიზნულია ფაილების წასაშლელად, მაგრამ თუ მას შესაბამისი არგუმენტი მისცემთ, ის ასევე წაშლის საქაღალდეს. ეს პარამეტრი უკვე შესაფერისია არა ცარიელი დირექტორიებისთვის; ამ შემთხვევაში, თქვენ უნდა შეიყვანოთ rm -R საქაღალდე (ან დირექტორიის სრული გზა) კონსოლში. გაითვალისწინეთ არგუმენტი -რ- ის იწყებს რეკურსიულ წაშლას, ანუ გავლენას ახდენს საქაღალდის მთელ შინაარსზე და საკუთარ თავზე. შესვლისას აუცილებელია რეგისტრირებული იყოს, რადგან -რ- ეს სრულიად განსხვავებული ვარიანტია.

თუ გსურთ rm-ის გამოყენებისას ყველა წაშლილი ფაილისა და საქაღალდის სიის ჩვენება, მაშინ ხაზის ოდნავ შეცვლა მოგიწევთ. შედი "ტერმინალი" rm -Rfv საქაღალდე და შემდეგ გააქტიურეთ ბრძანება.

წაშლის დასრულების შემდეგ გამოჩნდება ინფორმაცია ყველა დირექტორიასა და ცალკეულ ობიექტზე, რომლებიც ადრე მდებარეობდა მითითებულ ადგილას.

ბრძანების პოვნა

ჩვენს ვებსაიტს უკვე აქვს მასალა Linux-ის ბირთვზე შემუშავებულ ოპერაციულ სისტემებში პოვნის გამოყენების მაგალითებით. რა თქმა უნდა, იქ მხოლოდ ძირითადი და ყველაზე სასარგებლო ინფორმაციაა წარმოდგენილი. თქვენ შეგიძლიათ გაეცნოთ მას შემდეგ ბმულზე დაწკაპუნებით და ახლა ჩვენ გთავაზობთ გაირკვეს, თუ როგორ მუშაობს ეს ინსტრუმენტი, როდესაც თქვენ გჭირდებათ დირექტორიების წაშლა.

  1. როგორც ცნობილია, იპოვეემსახურება სისტემის შიგნით ობიექტების ძიებას. დამატებითი პარამეტრების გამოყენების წყალობით, შეგიძლიათ იპოვოთ დირექტორიები კონკრეტული სახელით და დაუყოვნებლივ წაშალოთ ისინი. ამისათვის შეიყვანეთ Find კონსოლში. -type d -name "folder" -exec rm -rf () \;, სადაც საქაღალდე არის დირექტორიას სახელი. ამის გაკეთებისას აუცილებლად დაწერეთ ორმაგი ციტატები.
  2. ცალკე ხაზი ზოგჯერ აჩვენებს ინფორმაციას იმის შესახებ, რომ ასეთი ფაილი ან დირექტორია არ არსებობს, მაგრამ ეს არ ნიშნავს რომ ის არ არის ნაპოვნი. Უბრალოდ იპოვეისევ მუშაობდა დირექტორიის სისტემიდან წაშლის შემდეგ.
  3. find ~/ -empty -type d -delete საშუალებას გაძლევთ წაშალოთ ყველა ცარიელი საქაღალდე სისტემაში. ზოგიერთი მათგანი ხელმისაწვდომია მხოლოდ სუპერმომხმარებლისთვის, ასე რომ ადრე იპოვესუდო უნდა დაემატოს.
  4. ეკრანზე გამოჩნდება ყველა ნაპოვნი ობიექტის მონაცემები და ოპერაციის წარმატება.
  5. თქვენ ასევე შეგიძლიათ მიუთითოთ მხოლოდ კონკრეტული დირექტორია ინსტრუმენტის მოსაძებნად და გასასუფთავებლად. შემდეგ ხაზი გამოიყურება, მაგალითად, ასე: find /home/user/Folder/ -empty -type d -delete .

ეს ასრულებს ინტერაქციას Linux-ის სტანდარტულ კონსოლის უტილიტებთან. როგორც ხედავთ, მათი დიდი რაოდენობაა და თითოეული გამოიყენება გარკვეულ სიტუაციებში. თუ გსურთ სხვა პოპულარული გუნდების გაცნობა, წაიკითხეთ ჩვენი ცალკეული მასალა ქვემოთ მოცემულ ბმულზე.

კარგი დღე, ძვირფასო მკითხველებო. დღეს მინდა ვისაუბრო PHP-ში დირექტორიას წაშლაზე. როგორც ჩანს, ოპერაცია არ არის რთული, მაგრამ არსებობს რამდენიმე ნიუანსი. მოდით გადავხედოთ ამის გაკეთების გზებს.

PHP-ს აქვს ამისთვის ფუნქცია rmdir (). არგუმენტად იღებს გზას დირექტორიაში, რომლის წაშლაც გსურთ. თუმცა, დირექტორია ცარიელი უნდა იყოს- ეს არის მთავარი პირობა (გარდა იმისა, რომ მომხმარებელს, ვისგანაც მუშაობს ვებ სერვერი, უნდა ჰქონდეს ჩაწერის უფლება დირექტორიაზე). თუ ფაილები განთავსებულია დირექტორიაში, ჩვენ მივიღებთ შეცდომას ფუნქციის გამოძახებისას. შესაბამისად მივდივართ დასკვნამდე, რომ დირექტორია ფუნქციის გამოყენებამდე rmdir ()ჯერ უნდა გაიწმინდოს.

ონლაინ ისინი გვირჩევენ დაწეროთ ფუნქცია, რომელიც არგუმენტად გადასცემს იმ დირექტორიასკენ მიმავალ გზას, რომელიც უნდა წავშალოთ. ფუნქციის სხეულში აუცილებელია დირექტორიაში შიგთავსის ჩამონათვალის ორგანიზება, რომლის ფარგლებშიც ხდება შემოწმება იმის დასადგენად, არის თუ არა ფაილი დირექტორია. თუ ფაილი არის დირექტორია, მაშინ ფუნქცია თავის თავს იძახებს ამ პირობის საფუძველზე. ეს აუცილებელია ჩადგმული დირექტორიების გასასუფთავებლად და ის იმუშავებს ბუდობის ყველა დონეზე. წინააღმდეგ შემთხვევაში, ფუნქცია გამოიყენება ფაილზე გაუქმება ()- შექმნილია ფაილის წასაშლელად. ამ შემოწმების გარეთ, ბოლო ეტაპზე ჩვენ ვშლით დირექტორიას.

განხორციელების მაგალითი:

ფუნქცია recursiveRemoveDir($dir) ( $includes = glob($dir."/*"); foreach ($ მოიცავს როგორც $include) ( if(is_dir($include)) ( recursiveRemoveDir($include); ) other ( unlink( $include); ) ) rmdir($dir);) // tmp დირექტორიას ამოღება მიმდინარე დირექტორიადან recursiveRemoveDir("tmp");
რა პრობლემები აქვს ამ კოდს?

მარტივ შემთხვევებში, დირექტორია ყველა დანართით წაიშლება. მაგრამ დავუშვათ, რომ ჩვენს დირექტორიაში არის დამალული ფაილი, რომელიც იწყება წერტილით, მაგალითად, .htaccess. ფუნქცია გლობუსი ()არის UNIX გლობუსის ჩანაცვლება, რომელიც ნაგულისხმევად არ შეიცავს დამალულ ფაილებს (DOTFILES). მაგალითად, თუ მივალთ nix ტერმინალში და გამოვიყენებთ bash-ს, იგივე პრობლემა შეგვხვდება (საუბარია ფარულ ფაილებზე გლობებში). ამ პრობლემის გადასაჭრელად bash-ში არის ბრძანება: shopt -s dotglob- ის საშუალებას აძლევს ფარული ფაილების გლობუსის ჩანაცვლებას. PHP-ში ამის მოგვარება შესაძლებელია დამატებითი პარამეტრის დამატებით GLOB_BRACEამისთვის გლობუსი ()და შაბლონის გაფართოება ფუნქციის პირველი პარამეტრიდან.

$includes = glob("tmp/(,.)*", GLOB_BRACE);
და აქ არის ასევე პრობლემა - ჩვენ შევხვდებით უსასრულო მარყუჟს, რადგან მასივი შეიცავს მნიშვნელობებს. და.. - რომელიც არის მიმდინარე და მშობელი დირექტორია სისტემის დონეზე. ჩვენ მივიღებთ უსასრულო მარყუჟს (და არ წავშლით ყველა მშობლის დირექტორიას), რადგან. როგორც ნაგულისხმევი დახარისხების ნაწილი, გენერირებული მასივი მოვა პირველ რიგში.. - ანუ, ყოველ ჯერზე, როდესაც ჩვენ შევდივართ იმავე დირექტორიაში. პრობლემის გადასაჭრელად, ჩვენ ჩამოვაყალიბებთ მასივს ამ სისტემის დირექტორიებიდან და ციკლის სახით, ამოვიღებთ მათ ინდექსებს მთავარი მასივიდან. ასევე არის სიმბოლური კავშირების პრობლემა. ვთქვათ, წაშლილი დირექტორია შეიცავს ბმულს სხვა დირექტორიაში, რომლის შიგთავსის წაშლა ჩვენ აბსოლუტურად არ გვაინტერესებს. პრობლემის გადასაჭრელად, რეკურსიის შექმნამდე აუცილებელია შეამოწმოთ, რომ ერთეული არ არის მინიშნება.

შედეგად, ფუნქცია იღებს შემდეგ ფორმას:

ფუნქცია 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 ($ მოიცავს როგორც $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 ტესტი rmdir: ვერ წაიშალა `test“: დირექტორია ცარიელი არ არის

2. როგორ წავშალოთ ჩადგმული დირექტორიები Linux-ში?

ვარიანტის გამოყენება -გვთქვენ შეგიძლიათ წაშალოთ დირექტორია მასში ჩადგმული ქვედირექტორიით.

$ rmdir -p dir1/dir2/dir3

გუნდი rmdir -p dir1/dir2/dir3ეს არის ბრძანების ექვივალენტი

$ rmdir dir1/dir2/dir3 dir1/dir2 dir1

3. შინაარსის დირექტორიას წაშლა

თუ გსურთ წაშალოთ დირექტორია შინაარსით, შეგიძლიათ გამოიყენოთ ბრძანება რმ:

$ rm -rf DIRNAME

ეს ბრძანება წაშლის დირექტორიას, მასში შემავალი ყველა ფაილის და ქვედირექტორიის ჩათვლით. გამოიყენეთ ეს ბრძანება სიფრთხილით, რადგან წაშლილი ფაილების აღდგენა ადვილი პროცედურა არ იქნება.

4. ინტერაქტიული მოცილება

საჭირო ფაილების შემთხვევით წაშლის თავიდან ასაცილებლად, გირჩევთ გამოიყენოთ -i ვარიანტი ფაილების და საქაღალდეების ინტერაქტიულად წასაშლელად (განსაკუთრებით root უფლებებით).

რეკურსიული და ინტერაქტიული დირექტორია წაშლა.

# rm -ir DIRNAME

ინტერაქტიული ფაილის წაშლა.

# rm -i FILENAME

5. სასარგებლო მეტსახელები rm და rmdir ბრძანებებისთვის

თქვენ შეგიძლიათ გამოიყენოთ ინტერაქტიული წაშლა, როგორც rm ბრძანების ნაგულისხმევი ქცევა.

მეტსახელი rm-ის ინტერაქტიულად მუდმივი შესრულებისთვის

# მეტსახელი rm="rm -i"

ბრძანების გამოყენებისას რმბრძანება რეალურად შესრულდება რმ -ი. მაგრამ ყურადღება უნდა მიაქციოთ ერთ ნიუანსს. არ გამოიყენოთ -i ვარიანტი მომავალში, რადგან არ მიიღებთ სასურველ ეფექტს. მოდით შევხედოთ მაგალითს:

შემდეგ ბრძანებაში -i-ის გამოყენება არ მოგცემთ მოსალოდნელ ეფექტს..

$ rm -irf DIRNAME

ამ შემთხვევაში, ალიასის გამოყენებისას, ზემოაღნიშნული ბრძანება უნდა შესრულდეს შემდეგნაირად:

$ rm -rf DIRNAME

ქვემოთ მოყვანილი ყველა ბრძანება ექვივალენტურია და ასრულებს იგივე ფუნქციონირებას.

  • რმ-ფრ
  • rm -rf
  • rm -r -f
  • rm -f -r

თუ თქვენ გჭირდებათ შენობის ექსპერტიზის შეფასება, გირჩევთ შეუკვეთოთ მზა შენობების შემოწმება ტექნოპლასტის კვლევისა და წარმოების ცენტრის სპეციალისტების მიერ.