KAKO DA da se izborite sa tvrdoglavim Trash-om na Mac-u
Veliki broj pitanja Mac korisnika na forumima vezan je za kantu za smeće koja neće da se isprazni pomoću standardne "Empty Trash" operacije. Postoji mnogo razloga zašto se ovo dešava:
ponekad korisnik nema odgovarajuće privilegije za brisanje fajlova
ponekad su stavke koje hoće da izbriše u upotrebi.
Koji god da je razlog, Finder prikazuje žuti upozoravajući trougao i tvrdoglavo odbija da uradi ono što se traži od njega. Prirodno je da kada kažete operativnom sistemu da isprazni kantu za smeće, da očekujete da on to i uradi. Ne postoji specifični razlog zašto se ovo dešava, pa samim tim ne postoji ni specifično rešenje koje se može dati.
Zbog toga ću vam objasniti kako je kanta za smeće implementirana u Mac OS X, i predstaviću vam tehnike koje možete da primenite kako biste ružno izbrisali njen sadržaj. Osim u slučaju oštećenog fajl sistema, kanta za smeće uvek može da se isprazni.
Opisaćemo pristup koji uključuje Mac OS X GUI ali i pristup koji uključuje Mac OS X komandnu liniju (Unix), pri čemu ćemo kod ovog potonjeg dati detaljno objašnjenje načina na koji je kanta za smeće implementirana. Naravno, vi možete i da butujete u OS 9 i upotrebite vaše OS 9 veštine.
GUI pristup
Kada operacija pražnjenja kante za smeće ne uspe, Finder će vas obavestiti da nemate odgovarajuće privilegije ili da su stavke (objekti) u upotrebi. Različiti uslovi zahtevaju različite pristupe.
Kako da obrišete (Nedovoljne privilegije)
Ako vas Finder obavesti: "The operation cannot be completed because you don't have sufficient privileges for tamo neki objekat". Kliknite na continue da biste izbrisali sve što možete. Sada možete da uzmete u ruke prvi alat za uništavanje smeća kako biste otključali objekte koje ne možete da izbrišete.
Alat 1 - Ručno otključavanje
Neki objekti u kanti za smeće su možda zaključani: iako se zaključani objekti obično automatski otključavaju i brišu, u nekim slučajevima to se neće desiti. Otvorite kantu za smeće i pogledajte preostale objekte, posebno tamo neki objekat. Selektujte svaki objekat posebno i pritisnite command-I da biste otvorili Finder-ov Show Info prozor. Selektujte General Information iz padajućeg menija. U donjem levom uglu videćete polje za potvrđivanje koje se zove Locked. Ako je ono potvrđeno, poništite ga tako što ćete kliknuti na polje.
Možda nećete moći da otključate stavku ako niste njen vlasnik. U tom slučaju pređite na Alat broj 2.
Ako ste uspeli da otključate sve objekte probajte ponovo da ispraznite kantu za smeće i ponavljajte operaciju sve dok ne pobedite, ili priznajte poraz.
Alat broj 2 - Super-Trasher-i drugih proizvođača
Postoji mnogo programa drugih proizvođača koji će vam pomoći da upravljate dozvolama. Oni obično imaju i Empty Trash opciju za pražnjenje kante za smeće. Tri najpopularnija programa ove vrste su:
SuperGetInfo od Bare Bones Software
BatChmod od Arbysoft
FileXaminer od Gideon Softworks
Kod bilo kog od ovih programa, izaberite opciju Empty trash.
Kako da izbrišete (Objekti u upotrebi)
Ako vas Finder obavesti: "The operation could not be completed because the item neko ime is in use"pritisnite continue da biste uklonili onoliko objekatas koliko možete.
Sada izaberite alat broj 3 da biste zatvorili objekte.
Alat broj 3 - Zatvaranje objekata
Objekat koji je u upotrebi je otvorio neki program koji ga još nije zatvorio. Na osnovu imena objekta možda ćete uspeti da pogodite koji program je kriv za to. Zatvorite dati program i probajte ponovo.
Ponekad je Finder odgovoran jer misli da je fajl zaključan iako on to više nije. Premeštanje neposlušnog fajla iz kante za smeće na neko drugo mesto i njegovo vraćanje nazad u kantu može da reši problem.
Ako ne uspete, zatvorite još programa. Ako i to ne uspe izlogujte se i ulogujte se ponovo. Konačno, ako rebutujete računar sigurno nijedan fajl neće ostati u upotrebi.
Može da se desi da imate oba problema, i sa dozvolama a i sa fajlovima u upotrebi, što znači da ćete morati da primenite obe opisane tehnike.
Pristup pomoću komandne linije
Sada znate kako da ispraznite kantu za smeće koristeći grafički korisnički interfejs (GUI) operativnog sistema. Sledeće ćemo opisati kako Mac OS X implementira kantu za smeće iza scene, i kako možete da ispraznite njen sadržaj na Unix način.
Komande koje ću navoditi izgledaće nešto slično ovome:% cd ~
Nemojte da kucate %, već samo komandu koja sledi, a onda pritisnite Return. Karakter ispisan posle cd zove se tilda. Pokrenite Terminal u Applications/Utilities i krenimo u akciju.
Pozadinske informacije - Teorija smeća
Ovaj deo mog izlaganja daje tehničke detalje vezane za način na koji radi Mac OS X Trash. Međutim, nije neophodno da razumete detalje da biste uspešno izveli sledeću sekciju koja se zove Praktični savet - Uništavanje smeća, u kojem se nalazi komanda koja će isprazniti kantu za smeće.
Smeće se čuva u direktorijumu koji se zove . Trash. Ovaj direktorijum se nalazi unutar vašeg home direktorijuma. Možete da vidite njegov sadržaj ako ukucate komandu:
% cd ~% ls -ald . Trash
Videćete izlistane stavke koje vidite kada otvorite Trash ikonu iz Dock-a. Pogledajte sami . Trash direktorijum:
% ls -ald . Trashdrwx------ 3 slavica staff 58 Jun 25 12:08 . Trash
Videćete da imate read i write dozvole za . Trash (ja sam korisnik slavica), i nijednu dozvolu za druge korisnike. To što imate write dozvolu za direktorijum znači da možete da ga menjate, to jest da kreirate i uklanjate fajlove unutar direktorijuma. Ključni zaključak ovde je da vam to što imate write pristup direktorijumu omogućava da brišete fajlove unutar datog direktorijuma bez obzira na dozvole koje imate nad fajlovima unutar njega.
Ali možda se u vašem home direktorijumu nalazi fajl čiji je vlasnik root, za koji niko nema dozvole. Ne brinite, vi možete da ga izbrišete. Ne možete da ga otvorite ili izmenite, ali možete da ga izbrišete. Možda vam to zvuči čudno, ali razlog za to je što vi ne menjate sam fajl, već samo direktorijum. Vi brišete unos u direktorijumu za taj fajl za taj fajl, tako da fajl nestaje a prostor na disku na kojem se nalzio je sada slobodan. Ali vi ste promenili samo direktorijum, a ne fajl.
Na osnovu ove teorije, vi nikada ne biste trebali da imate problema u pražnjenu vaše kante za smeće. Ali imate, zar ne?
E pa, postoji i četvrti scenario.
1 - Ugneždeni direktorijumi koje ne posedujete
To što možete da izbrišete bilo koji fajl odnosi se samo na fajlove, tojest ako imate dozvolu pisanja (write dozvolu) u direktorijum u kojem se nalazi fajl. Ali, ako se fajl nalazi u direktorijumu unutar Trash-a za koji nemate write dozvolu, vi nećete moći da ga izbrišete. A ne možete da izbrišete ni sam direktorijum zato što nije prazan.
2 - Nepromenljivi fajlovi
Fajlovi mogu da budu nepromenljivi. Nepromenljivi fajl ima na sebi immutable oznaku - jednu od oznaka fajla koja postoji iznad atributa (dozvola i vlasnika) koje vidite kada izlistate fajlove. Specijalna komanda koja se zove 'chflags' se koristi za postavljanje i skidanje ove oznake.
3 - Otvoreni fajlovi
Ako fajl trenutno koristi neki program (koji je otvoren) onda fajl neće moći da se izbriše, bez obzira na dozvole koje imate nad tim fajlom.
4 - Najgori scenario
Fajlu može da bude dodeljena System Immutable oznaka. To znači da vi ne možete da ga promenite ni na koji način, to jest, nijedan korisnik ne može da ga promeni. ^ak ni Root ne može da ga promeni. A verovali ili ne, root ne može ni da mu skine datu oznaku, što znači da ni root ne može da ga izbriše. Ali on se ipak može izbrisati. Praktični saveti - Uništavanje smeća
Evo četiri rešenja za četiri scenarija koja su izlistani gore.
1 - Ugneždeni direktorijumi čiji niste vlasnik
Jedno rešenje je da primenite write dozvole (dozvole za pisanje) na sve fajlove u kanti za smeće. Ali ako niste vlasnik nekih od fajlova onda ćete morati da se ulogujete kao root. Ako ako ste se već ulogovali kao root, onda već možete odmah i da izbrišete sve fajlove. Evo kako ide procedura.
% sudo rm -ri ~/. Trash
Ovo će izbrisati sve fajlove osim onih koji su neizmenljivi ili su uupotrebi.
'sudo' izvršava komandu kao root i samim tim poništava sve dozvole
'rm' uklanja fajlove
'-r' uklanja fajlove rekurzivno - to jest, briše sve ugneždene fajlove i direktorijume
'-i' je režim potvrđivanja - bićete upozoreni pre brisanja svakog fajla.
Predlažem da ovu opciju koristite kao bezbednosnu meru. Međutim, ako imate jako mnogo fajlova, možete da zamenite -i sa -f (force, tojest brisanje na silu).
2 - Neizmenljivi fajlovi
Možete da proverite koji fajlovi imaju immutable oznaku tako što ćete specifikovati -o opciju za ls. ls -alodrwx------ 15 hanuman staff - 510 Jan 6 23:35 osxfaq-rw-r--r-- 1 hanuman staff uchg 0 Feb 20 14:04 user-immutable-set
uchg vam govori da je postavljena User Immutable oznaka. schg vam govori da je postavljena System Immutable oznaka (vidite tačku 4 dole).
Skinite immutable oznaku sa svih fajlova, zatim ih izbrišite:
% sudo chflags -R nouchg ~/. Trash% sudo rm -ri ~/. Trash
chflags menja podešavanje oznaka fajlova.
nouchg skida korisničku oznaku neizmenljivosti (immutableoznaku). uchg bi je postavio.
-R radi to rekurzivno.
3 - Otvoreni fajlovi
Možete da odredite koji fajlovi u kanti za smeće su otvoreni i koji su ih programi otvorili, pomoću fstat komande:
% ls -al ~/. Trashtotal 0drwx------ 5 slavica staff 126 Jun 25 16:43 . drwxr-xr-x 24 slavica staff 772 Jun 25 16:32 . . -rw-r--r-- 1 slavica staff 0 Jun 25 16:32 xxx-rw-r--r-- 1 slavica staff 0 Jun 25 16:43 yyy-rw-r--r-- 1 slavica staff 0 Jun 25 16:43 zzz% fstat ~/. Trash/*USER . CMD PID FD INUM MODE SZđDV R/W MOUNT NAMEslavica vi 731 3 368860 -rw-r--r-- 0 r / /Users/slavica/. Trash/xxx. . . to je taj - vi je otvorio xxx. . .
Zatvorite dati fajl, zatim probajte ponovo da ispraznite kantu za smeće. Ako ne možete da zatvorite sve fajlove, pređite na metod opisan u GUI pristupu.
4 - Najgori scenario
Ako svi opisani metodi propadnu, super otporni fajlovi koji vam zagorčavaju život možda imaju System Immutable oznaku. Takvi fajlovi su zaključani kao Fort Noks. System Immutable oznaku ne može da promeni čak ni root, već samo super-root. Super-hiper-mega korisnik. Šta!?!
Kada vaš Mac radi u multikorisničkom okruženju (normalni režim rada) on radi na nivou 1. Neke operacije čak ni root ne može da uradi na nivou 1, kao što je isključivanje System Immutable oznake. Vi morate da pokrenete Mac na nivou 0. Prebacivanje na režim rada sa jednim korisnikom će vam omogućiti da radite na nivou 0 i izmenite System Immutable oznaku.
Uradite sledeće. Zatvorite sve programe i izdajte ovu komandu:
% sudo shutdown +0 "Bye bye"
Sada ste zatvorili multikorisnički režim rada i ušli u single user mod. Izgubićete sve servise kao što je mrežna konekcija dok se nalazite u single user režimu rada. Alternativno, vi možete da rebutujete vaš Mac, i startujete sa istovremeno pritisnutim Command (Apple) i s tasterima.
% cd /Users/vaše-korisničkoime-ovde/. Trash% chflags -R noschg *
Zatim pritisnite control-d da biste se vratili u multi-user (višekorisnički) mod. Sada ćete moći da ispraznite Trash pomoću Finder, ili primenom gore opisanih koraka.
Napomena: kada uđete u single user režim rada, ukucajte:% whoamiAko odogovor nije root ukucajte:% sui ukucajte control-d dvaput kada izlazite.
Ostale kante za smeće
U nekim situacijama, kanta za smeće će se nalaziti na root nivou vašeg sistemskokg diska, ili na drugoj particiji ili drajvu. Direktorijum je:
/. Trashes/501i/Volumes/ime-diska-ovde/. Trashes/501
Proverite da li su prazni tako što ćete ih izlistati.
% sudo ls -al /. Trashes/501
501 je User ID korisnika koji obavlja pražnjenje kante sa smeće.
% sudo ls -al /. Trashes može da otkrije nekoliko 50x direktorijuma.
Vi možete da proverite sopstveni User ID (uid) tako što ćete izdati komandu:% idi zameniti to ako nije 501. Zatim možete da primenite sve gore opisane tehnike za ~/. Trash na /. Trashes/501.
Za kraj
Ako i dalje imate problema, a primenili ste sve korake koji su gore opisani, verovatno imate oštećen fajl sistem. Prvo, uđite u single user mod i izdajte komandu:
% fscki odgovorite na pitanja, ili automatski pokrenite fsck pomoću:% fsck -yTakođe možete da isprobate komercijalne programe za popravljanje fajl sistema.
Srećno smećarenje!