zondag 2 juni 2024

Bestanden met ongeldige characters verwijderen In linux en op de QNAP-nas op basis van Inode nummer

Ik had een serie bestanden met de : in de bestandsnaam op zowel mijn QNAP nas als in mijn Linux map. Linux accepteert dat teken in een bestandsnaam, maar QNAP niet. Op een of andere manier was het toch in het bestandssysteem terecht gekomen. Ik kon de bestanden niet wissen in Nemo. Wel op de eigen schijf, maar niet op de QNAP nas netwerkschijf. Het lukte niet met samba share en ook niet met FTP. Ook de bestandsbeheerder van de QNAP nas kon het bestand niet verwijdewren.

Wat ik eerst deed, was alle andere bestanden verplaatsen naar een andere map. Vervolgens de QNAP benaderen via SSH.

In de SSH shell gebruik je het cd commano om naar de verschillende schijven te gaan:

/share/Public
/share/Multimedia
/share/Download
/share/Web
Dus cd /share/Multimedia 
om naar de Multimedia drive te gaan. Vervolgens navigeer je naar de juiste map op deze schijf:
Ieder bestand heeft in Linux een inode nummer. Dat nummer kun je gebruiken als het niet lukt om het
bestand te verwijderen met het reguliere rm commando. Let op dat je zeer precies te werk gaat.
ls -ia
16531481 ZXformat:tijdschrift 16531479 ZX-Spectrum:Next 16531482 ZXSpectrum:roms 16531483 ZXSpectrum:tapes 

Deze bestanden zijn niet te verwijderen met het rm commando doordat er een : in de bestandsnaam zit.
Met dit commando is het bestand wel te verwijderen:
find . -maxdepth 1 -inum $16531481 -delete 
find . -maxdepth 1 -inum $16531479 -delete 
find . -maxdepth 1 -inum $16531482 -delete 
find . -maxdepth 1 -inum $16531483 -delete 
Het is van belang dat het inode nummers kloppen, omdat je anders een ander bestand wist en daarmee het 
gehele bestandssysteem  om zeep helpt. Verder is het zaak zo min mogelijk andere bestanden in
de betreffende map te hebben. En liefst ook geen submappen meer.

Geen opmerkingen:

Een reactie posten

Opmerking: Alleen leden van deze blog kunnen een reactie posten.

Terminal met een standaard boodschap beginnen.

Soms is het handig om de terminal te starten met een standaard boodschap om bijvoorbeeld instructies te geven. Iedere gebruiker kan dat voor...