Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: cosmo 02. 02. 2011, 17:36:55

Název: Mazání neprázdných adresářů se smbclient
Přispěvatel: cosmo 02. 02. 2011, 17:36:55
Dobry vecer.

Momentalne riesim bash skript, ktory ma za ulohu mazat urcite adresare na NAS cez sambu. Nemozem pouzit smbmount, pretoze server (gentoo) nema kernel skompilovany s podporou SMB/CIFS.
Na operacie so subormi a foldrami pouzivam smbclient. Ked vsak chcem mazat neprazdne foldre, dostanem standardne hlasenie v style "NT_DIRECTORY_NON_EMPTY".
Ked pouzijem standardny parameter "--ignore-fail-on-non-empty", tak sa situacia nijako nezmeni. Dostanem to iste hlasenie ale folder sa nevymaze. Nasiel som mnoho odkazov ale prakticky ziaden neriesi tento problem. Vedeli by ste mi poradit nejaky prepinac, ktory by umoznil aby rmdir vedel mazat aj neprazdne foldre ?

Ked si pripojim toto zdielanie na druhom PC cez mount, kde uz je podpora SMB/CIFS, taktiez nefunguje rmdir "--ignore-fail-on-non-empty" pre zvoleny folder.

Podotykam, ze na pouzitom NAS mam prava aj na zapis. Mazanie prazdnych foldrov stadnardne funguje.

Dakujem za informaciu.
Název: Re: Ako na mazanie neprazdnych foldrov cez smbclient
Přispěvatel: Marek Turnovec 02. 02. 2011, 19:41:24
A když ten adresář není prázdný, chcete ho smazat i s jeho obsahem, nebo ne?

On totiž příkaz rmdir není určený na mazání adresářů, které nejsou prázdné. Podívejte se schválně na manuálovou stránku, je to tam hned nahoře...

Pokud chcete smazat i neprázdné adresáře, zkuste raději rm -r.
Název: Re: Ako na mazanie neprazdnych foldrov cez smbclient
Přispěvatel: Marek Turnovec 02. 02. 2011, 19:43:59
Použití toho parametru u rmdir, co jste zmiňoval, neznamená, že se "neprázdnost" adresáře bude ignorovat a adresář se vymaže, ale že se případně takový adresář přeskočí a bude se pokračovat dalšími...
Název: Re: Mazání neprázdných adresářů se smbclient
Přispěvatel: cosmo 03. 02. 2011, 09:27:56
Dakujem za reakcie. Priznavam sa, "rmdir - remove empty directories" som uplne prehliadol, skocil som rovno na " --ignore-fail-on-non-empty".  Naivne som to pochopil, ze to vyriesi moj problem. Neviem preco rm -r mi vobec nenapadlo :-) Nabuduce budem citat manual pozornejsie, snad mi neujde pointa :-)

Este raz dakujem za postrehy.