Portál AbcLinuxu, 10. května 2025 03:14

Dotaz: Jak smazat soubor a adresář v BASH

18.4.2013 18:39 Jarda
Jak smazat soubor a adresář v BASH
Přečteno: 730×
Odpovědět | Admin
Ahoj, Jak můžu smazat soubor a adresář v BASH, pozor ptám se opravdu na BASH čili rm ani mkdir nehledám ;) Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.4.2013 18:41 Jarda
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Odpovědět | | Sbalit | Link | Blokovat | Admin
EDIT

Ahoj, Jak můžu smazat i vytvořit soubor a adresář v BASH, pozor ptám se opravdu na BASH čili rm ani mkdir nehledám ;) Díky

Vypadlo mi jedno slovo ;)
18.4.2013 19:53 potato
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Beru to ‚v bashi‘, jako že se nesmějí spouštět žádné jiné procesy.

Vytvořit soubor jde snadno přesměrováním výstupu (a i jinak).

Všechno ostatní (nepočítám-li třeba mkdir dostupný jako builtin, pokud si s ním bash zkompiluješ) jako side-effect. Tedy tak, že přesvědčím již běžící program, aby tu věc udělal. Například mkdir(2) a rmdir(2) bash sám ani nikde nedělá, tudíž budeme přesvědčovat jiný program. Nejspíš zapsáním do souboru (to lze), který se nějakým způsobem interpretuje a vykonává bez toho, abychom museli explicitně spouštět další proces. Tady už ale velmi jde o to, co je k disposici...
18.4.2013 23:41 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Bash nema "buildin" prikaz na odstranovanie. Vytvarat sa da len subor a to len cez presmerovanie vystupu.

Moznou alternativou je napr. busybox. Busybox spaja vacsinu Unix/Linux prikazov a shell do jednej binarky.

Vas dotaz je natolko nezvycajny, ze bude lepsie ak objastnite aky problem riesite. Mozno pojde problem vyriesit aj inak ako prevas neziaducim volanim externych prikazov.
19.4.2013 14:16 potato
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Moc se o tom neví, ale do bashe lze zakompilovat další builtiny, standardně se nabízejí

basename, cut, dirname, finfo, getconf, head, id, ln, logname, mkdir, pathchk, print, printenv, push, realpath, rmdir, sleep, sync, tee, tty, uname, unlink, whoami

a dokonce lze definovat vlastní (jako loadable moduly). Ta možnost existuje především proto, že u příkazů jako basename nebo mkdir nejvíc času a prostředků sežere to vytvoření procesu. S takhle zkompilovaným bashem pak lze lecos i bez busyboxu (který je ovšem samozřejmě mnohem mocnější). Nicméně distribuční binárky bashe žádné extra builtiny AFAIK neobsahují.

Takže existuje způsob, jak udělat v bashi třeba unlink:

1) Vzít zdrojáky bashe a tento modul si zkompilovat.

2) Do skriptu vložit monstrózní echo, které zkompilovaný modul zapíše do souboru.

3) Načíst modul pomocí enable -f

Nezkoušel jsem to.
19.4.2013 14:17 potato
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Bod 1) se samozřejmě dělá někde jinde, je to součást přípravy skriptu.
19.4.2013 14:54 potato
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Neumím ovšem jen pomocí echo dostat znak nul, což je trochu potíž.
Jendа avatar 19.4.2013 17:59 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
~> echo -ne "\000" | hexdump -C
00000000  00                                                |.|
00000001
19.4.2013 18:53 potato
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Vida, tak jsem to asi dělal nějak divně.
19.4.2013 13:23 drunkezz | skóre: 34 | blog: kadeco
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Odpovědět | | Sbalit | Link | Blokovat | Admin

zapisom nul na miesto na disku .

D.

19.4.2013 14:46 Zopper | skóre: 15
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Moc jednoduché... Spíš zápisem do nějakého speciálního souboru kontrolovat robotickou paži, co bude držet zmagnetizovanou jehlu a jezdit nad plotnou disku. :-)
"Dlouho ještě chcete soudit proti právu, stranit svévolníkům?" Ž 82,2
rADOn avatar 19.4.2013 17:48 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Jak smazat soubor a adresář v BASH
Moc jednoduché. Profíci přece používají motýly.
"2^24 comments ought to be enough for anyone" -- CmdrTaco

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.