Některé další metody zahrnují:
escapování speciálních znaků:
[~]$rm \"la\*
použijte příkaz find a prohledejte pouze aktuální adresář. Příkaz find dokáže vyhledávat čísla inodů a má praktický -delete
přepínač:
[~]$ls -i 7404301 "la* [~]$find . -maxdepth 1 -type f -inum 7404301 ./"la* [~]$find . -maxdepth 1 -type f -inum 7404301 -delete [~]$ls -i [~]$
Možná mi něco uniká, ale...
rm '"la*'
Každopádně názvy souborů nemají inody, soubory ano. Pokus o odstranění souboru bez odstranění všech názvů souborů, které na něj ukazují, poškodí váš souborový systém.
Pokud opravdu chcete to udělat - a váš případ použití ve skutečnosti vůbec nevypadá, že byste to potřebovali, můžete zkusit nástroje pro ladění souborového systému. Pokud jste ochotni ztratit všechno, ano.
Například pro ext2/3/4 debugfs
příkaz má možnost "kill_file", která vypadá, že bere inode. Jak je uvedeno v jiných odpovědích, toto bude poškodit váš systém souborů, protože v adresáři budou položky odkazující na neexistující soubor. Spuštěn fsck
později to může být možné opravit. Je nepravděpodobné, že to můžete udělat na připojeném souborovém systému.
Ale důrazně doporučuji stačí použít vhodné escapování/uvozovky a smazat takové soubory běžným rm
příkaz, jak je uvedeno v dřívější odpovědi - a použijte rm -i
pro větší bezpečnost při práci s názvy souborů obsahujícími kulové znaky jako *