Portál AbcLinuxu, 13. května 2025 22:04
Řešení dotazu:
Kazdy soubor by mel jit smazat, akorat je treba spravne napsat jeho jmeno. Uzitecnou pomuckou tady muze byt automaticke doplnovani nazvu souboru (v terminalu) (obvykle funguje i na nestandardni znaky), pripadne pouziti "*". Cim se ten soubor snazite smazat?
find . -inum 12345 -exec rm {} \;
mozna,
NN
rm -i *
nechat shell "napisat" mena suborovTo je dobrý postup, a už tady byl zmíněn. Je ale zbytečné nechat mazat všechny soubory – stačí napsat začátek jména souboru a tabulátorem jej doplnit, pokud název souboru začíná hned nějakým specifickým znakem, pořád je možné pomocí tabulátoru listovat všemi soubory a vybrat si tak ten správný.
potvrdit zmazanie iba toho spravnehoTo není zrovna nejlepší řešení…
Sam mam rad "spravne" riesenia, ale na riesenie jednorazovych stupidnych problemov netreba vzdy pouzit koncepcne dokonale riesenie. Naopak, casto je "sproste" riesenie jednoduche a vyriesi problem skor, ako by si niekto uvedomil, ze vobec o nejaky problem islo.To souhlasím, ale v tomto případě je nejjednodušší nechat si jméno souboru doplnit shellem. Mazat všechny soubory v aktuálním adresáři, a pak ručně všechny až na jeden odklikávat, že ten soubor vlastně smazat nechci, je zbytečně komplikované a nebezpečné řešení.
No a? Tak 40 krát dá 'n' a raz 'y'. Pokiaľ nemá v tom adresári stovky súborov, tak je to jednoduché a rýchle riešenie.rm -i *Tazatel chce smazat jeden soubor, ne všechny (v aktuálním adresáři)…
rm
jako parametry soubory a adresáře, které smazat nechcete – zvlášť když stejně snadno můžete předat jenom ten soubor, který opravdu smazat chcete.
ech, az mi zabehlo ako jem pri citani tohto prispevku ...
to ma daleko od dobrej rady .. to ma daleko vobec od rady ..
cez ls zisti inodu daneho fileu:
bsd(/tmp/abc)# ls -ali
total 4
141312 drwxr-xr-x 2 root wheel 512 Jul 21 22:03 .
2 drwxrwxrwt 15 root wheel 512 Jul 21 22:02 ..
141314 -rw-r--r-- 1 root wheel 0 Jul 21 22:03 ase
141317 -rw-r--r-- 1 root wheel 0 Jul 21 22:03 d
141316 -rw-r--r-- 1 root wheel 0 Jul 21 22:03 dk
141318 -rw-r--r-- 1 root wheel 0 Jul 21 22:03 h
141315 -rw-r--r-- 1 root wheel 0 Jul 21 22:03 ty
bsd:(/tmp/abc)#
chcem zmazat napr. subor "dk", teda inum 141316
overim si ci viem co robim:
bsd:(/tmp/abc)# find . -xdev -type f -inum 141316 -exec ls -la {} \;
-rw-r--r-- 1 root wheel 0 Jul 21 22:03 ./dk
bsd:(/tmp/abc)#
kde -xdev volba je velmi dolezita pred executnutim rm .. a nasledne zmazem:
bsd:(/tmp/abc)# find . -xdev -type f -inum 141316 -exec rm {} \;
bsd:(/tmp/abc)#
Mňa keď takto hneval v KDE Dolphin aj Konqueror, s úspechom som použil Midnight Commander - najprv som skúsil normálne pod userom a keď to nešlo, tak pod rootom všetko. Čerti vedia, prečo to tak bolo.
Inak, treba sa pozrieť aj na práva celého adresára, v ktorom ten súbor je.Našiel som si prekvapivo veľa súborov s user:root, group:wheel (vzniká to niekedy pri ukladaní z webu, pri kopírovaní z Windows...) - nechápal som, prečo nie som tam user ja.
V emulátoru konzole se přepnout do adresáře, kde je soubor ke smazání, vypsat příkazem ls všechny soubory na monitor, zkopírovat do schránky příslušný soubor a pak příkazem rm soubor odstranit: Za rm dát uvozovky, zkopírovat název souboru ze schránky, ukončit znovu uvozovkami a pak ENTER Právě uvedení souboru do uvozovek většinou pomáhá tam, kde jsou nestandardní znaky nebo je mezera v názvu typu "Tetička Evička z Přešťic.doc"
*-cast-nazvu-souboru-*
doplní všechny odpovídající názvy souboru (pokud trefím jedinečný prostředek, mám vyhráno, pokud ne, můžu ostatní smazat), případně pokud nezvolím žádný soubor, vypíše mi první <tab> všechny soubory a adresáře v aktuálním adresáři (i s escapováním, takže stačí myší vybrat a vložit, pokud mám myš) a další <tab> začne postupně cyklovat mezi všemi soubory a adresáři v aktuálním adresáři, takže si takhle najedu až na potřebný soubor.
Pak je tu ještě jedna rada, většinou to funguje. Použite příkaz detox. (detox /adresar/se/souborem) - změní kódování na ASCII, pak je možné soubor smazat.
konsole
), v ní Midnight Commander (mc
) a s jeho pomocí soubor přejměnovat / smazat.
P.S. Ale opravit už by to mohli...
Mne sa tiež raz stalo, že systém mi stále vyhadzoval chybové hlásenie, keď som chcel vyprázdniť kôš, stále mi hlásil, že ten a ten súbor sa nedá zmazať, pričom po kliknutí na kôš bolo vidno, že je prázdny. Tak som sa preklikal do príslušného adresára a vytvoril som tam úplne nový súbor s presne takým názvom aký mi ukazovalo chybové hlásenie, vyhodil som ho do koša, vyprázdnil kôš a bol pokoj.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.