reklama

Mazání neprázdných adresářů se smbclient

cosmo

Mazání neprázdných adresářů se smbclient
« kdy: 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.
« Poslední změna: 02. 02. 2011, 21:29:42 od Petr Krčmář »

reklama


Marek Turnovec

Re: Ako na mazanie neprazdnych foldrov cez smbclient
« Odpověď #1 kdy: 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.

Re: Ako na mazanie neprazdnych foldrov cez smbclient
« Odpověď #2 kdy: 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...

cosmo

Re: Mazání neprázdných adresářů se smbclient
« Odpověď #3 kdy: 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.

 

reklama