Puoi rinominare un file (directory o altro) usando solo la conoscenza dell'inode usando find
, ma se (a) il filesystem che lo contiene non è montato, o se (b) c'è un altro filesystem montato su una directory non vuota che contiene il file che ti interessa, semplicemente il file non è accessibile dal tuo sistema. Nel caso (a), è necessario montare il filesystem prima di poter fare qualsiasi cosa sul contenuto, incluso rinominare, e nel caso (b), è necessario smontare il filesystem che è montato "sopra la" directory che contiene il file che si desidera rinominare. Sembra che tu stia chiedendo del caso (b).
Se ti capisco correttamente, stai cercando di rendere /home
accessibile la tua vecchia directory (che si trova sulla tua partizione di root), mentre usi ancora la tua nuova partizione montata su /home
. Se è quello che vuoi, procedi come segue:
Chiudi tutti i file e disconnettiti. Quindi accedi come root
(usa un terminale virtuale per questo — premi Ctrl-Alt-F2) Esegui quanto segue:
umount /home
mv /home /home-old
mkdir /home
mount -a
ls /home
ls /home-old
Se tutto va bene, disconnettiti e riconnettiti come te stesso e tutto dovrebbe andare bene.
Per inciso, il comando per rinominare un file usando solo la conoscenza del suo inode (supponendo che il file sia nella directory corrente) è:
find . -maxdepth 1 -inum 123456789 -exec mv {} mynewname \;
Dov'è 123456789
il numero dell'inode, ovviamente. (Nota che find
determina il nome del file e il suo percorso e passa queste informazioni a mv
; non c'è alcun modo per rinominare un file senza coinvolgere il nome file esistente in alcun modo, ma se è solo che non conosci il nome file, è abbastanza semplice.)