Portál AbcLinuxu, 26. července 2025 20:29


Dotaz: Jak smazat "zmatené" soubory?

29.11.2005 00:23 hufhendr | skóre: 33 | blog: U hufhendra
Jak smazat "zmatené" soubory?
Přečteno: 693×
Odpovědět | Admin
Zdravím,
mám problém. Neumím smazat "zmatené" soubory. Při kopírování na USB disk se mi pokazily názvy souborů v jednom adresáři. Bohužel jsem nepřišel na způsob, jak tyto soubory vymazat. Klasické rm nefunguje, nedá se smazat ani nadřazený adresář.
Výpis adresáře na ukázku připojuji. Vím, že jsem kdysi dávno něco podobného řešil, ale už si nevzpomenu jak. Pokud víte jak na to, napište, předem díky.
find -type f | xargs rm
find: ./|?#?<>.°?: Chyba vstupu/výstupu
find: ./        %.??: Chyba vstupu/výstupu
find: ./?äám?í{7.r?: Chyba vstupu/výstupu
find: ./??u6?rk.w?: Chyba vstupu/výstupu
[...]


ls -la
ls: |?#?<>.°?: Chyba vstupu/výstupu
ls:     %.??: Chyba vstupu/výstupu
ls: ?äám?í{7.r?: Chyba vstupu/výstupu
ls: ??u6?rk.w?: Chyba vstupu/výstupu
[...]
-rwxr--r--  1 root root  498139825 čec 17  1940 {? ß?u{?.td?
-r-xr--r--  1 root root 4151464408 led 24  1999 ? ü????9.??é
-r-xr--r--  1 root root 3630044567 pro 20  1929 ?? 7????.p??
-r-xr--r--  1 root root  249097857 dub 30  1922 ????????.ä??
-rwxr--r--  1 root root 3289434631 led  9  1996 äçq ??üü.???
-rwxr--r--  1 root root 4077174191 pro 10  1968 ?äe?2ü??.?u?
-rwxr--r--  1 root root 2500995855 pro 15  1987 ?ä ???-f.?e?
-r-xr--r--  1 root root 2592147713 led 26  2026 ???"a?í?.?ß;
-rwxr--r--  1 root root 2908069707 lis 29  1951 *án??8â°.p?c
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

David Watzke avatar 29.11.2005 00:24 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zformátuj to, pokud můžeš.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
29.11.2005 00:29 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
To bohužel zatím nemůžu, je to poměrně veliký disk a nemám kam odložit obsah.
Kdysi dávno jsme na velkém UNIXu řešili problém adresáře "hvězdička". Nešlo to nijak, pak nám jeden programátor poradil nějaký postup...
Josef Kufner avatar 29.11.2005 00:38 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Obávám se, že toto je důsledek nějaké chyby ve filesystému. Rozhodně doporučuju přesunout data jinam a vyrobit znovu filesystem. Pro začátek nějaký fsck v read-only režimu.
Hello world ! Segmentation fault (core dumped)
29.11.2005 00:58 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Člověk se pořád učí, ani jsem netušil, že vfat lze opravovat z Linuxu. Takže jsem objevil dosfstools a fsck.vfat /dev/sda1 mi nabídnul
/data
  Has a large number of bad entries. (739/895)
Drop directory ? (y/n) y
Ostatní chyby jsem raději neopravoval; bohužel to nepomohlo a adresář je tam stále :(
29.11.2005 07:17 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Následující skriptík smaže všechny položky v _aktuálním_ adresáři. Neprochází je rekurzivě, takovou věc jsem si netroufl sem napsat.
#!/usr/bin/env python
import os
for name in os.listdir('.'):
  os.remove(name)
Ale myslím, že i kdyby se ty vadné položky podařilo odstranit, tak chyby ve filesystému zůstanou.
29.11.2005 08:27 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Asi to bude spravna cesta, ale pri pokusu o zapis do postizeneho adresare se mi disk prepina pouze pro cteni. Montovany je i pro zapis; zprvu lze zapisovat mimo zmineny adresar, pak se prepne a zapisovat nelze nikam.
Citliva data jsem uz zachranil, bylo by mozno poprosit o rekurzivni skriptik? :)

cp remove_files data
cp: cannot create regular file `data/remove_files': Systém souborů je pouze pro čtení
Josef Kufner avatar 29.11.2005 09:26 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Tím ti jádro chce naznačit, že se mu filesystém rozpadá pod rukama a tak ho přepne na read-only, aby se nerozpadl úplně i s daty.
Hello world ! Segmentation fault (core dumped)
29.11.2005 10:00 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Třese se mi ruka, když takovou věc píšu, ale smazat adresář rekurzivně zvládne celkem spolehlivě příkaz
rm -rf adresář
Naprogramovat by se to dalo třeba takhle:
#!/usr/bin/env python
import os, sys

really_delete = sys.argv[-1] == '--really-delete'

dir = os.getcwd()
for root,dirs,files in os.walk(dir, topdown=False):
  for file in files:
    file_fullpath = os.path.join(root, file)
    print 'deleting ', file_fullpath
    if really_delete:
      os.remove(file_fullpath)
  for dir in dirs:
    dir_fullpath = os.path.join(root, dir)
    print 'deleting ', dir_fullpath
    if really_delete: 
      os.rmdir(dir_fullpath)
Skriptík vypisuje a maže rekurzivně všechny položky v aktuálním adresáři. Když se pustí bez parametrů, všechno pouze vypíše. S parametrem "--really-delete" všechno i smaže.

Nicméně není to řešení tvého problému - máš zkrátka vadný filesystém a je potřeba jej znovu vytvořit, jinak chyby nebudou brát konce. Zkus tohle:
mkfs.vfat zařízení
To zařízení je asi /dev/sda1, že?
30.11.2005 20:20 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
rm -rf adresář jsem samozřejmě zkoušel hned zkraje, bohužel nefungovalo. Nakonec jsem data odložil stranou a provedl mkfs.vfat /dev/sda1

Váš skriptík se ale může ještě někdy hodit, díky moc :)
29.11.2005 10:52 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Odpovědět | | Sbalit | Link | Blokovat | Admin
find -name <jmeno> -exec rm -rf {} \;
29.11.2005 14:36 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
A zkoušel jste to? Výte jaký je rozdíl mezi in order a from order procházením stromu? Jen díky tomu, že rm -rf smaže celý adresář, tak vám to jako náhodou zafunguje. Prostě klika. Když už chcete machrovat, tak
find -name jmeno -print0 | xargs -0 rm -rf
Rozdíl je v rychlosti.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
29.11.2005 10:52 Tomáš Hála | skóre: 39 | blog: blog
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Máš tam vadný filesystém, takže doporučuji následující postup:
1) Udělat zálohu USB disku:
cp /dev/sda /tmp/zaloha.img
případně dd if=/dev/sda of=/tmp/zaloha.img
(pokud je sda ten disk)
2) Provádět veškeré pokusy o získání dat jen na této záloze
3) Zformátovat disk a překopírovat na něj zachráněná data
30.11.2005 20:25 hufhendr | skóre: 33 | blog: U hufhendra
Rozbalit Rozbalit vše Re: Jak smazat "zmatené" soubory?
Nakonec jsem opravdu musel disk zformátovat, pro příště si budu pamatovat, že ho napájení přes USB nemusí utáhnout a adaptér je lepší připojit vždy.

Díky všem za dobré rady :)

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.