Portál AbcLinuxu, 26. prosince 2025 14:32
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
/data Has a large number of bad entries. (739/895) Drop directory ? (y/n) yOstatní chyby jsem raději neopravoval; bohužel to nepomohlo a adresář je tam stále :(
#!/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.
rm -rf adresář
#!/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í
/dev/sda1, že?
find -name <jmeno> -exec rm -rf {} \;
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 -rfRozdíl je v rychlosti.
cp /dev/sda /tmp/zaloha.imgdd if=/dev/sda of=/tmp/zaloha.img
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.