Você pode renomear um arquivo (diretório ou qualquer outro) usando apenas o conhecimento do inode usando find
, mas se (a) o sistema de arquivos que o contém não estiver montado, ou (b) houver outro sistema de arquivos montado sobre um não -empty diretório que contém o arquivo que você está interessado, o arquivo simplesmente não é acessível pelo seu sistema. No caso (a), você precisa montar o sistema de arquivos antes de poder fazer qualquer coisa no conteúdo, incluindo renomear, e no caso (b), você precisa desmontar o sistema de arquivos que está montado "por cima" do diretório que contém o arquivo. arquivo que você deseja renomear. Parece que você está perguntando sobre o caso (b).
Se eu entendi corretamente, você está tentando tornar acessível o seu antigo diretório /home
(que está localizado em sua partição raiz), enquanto ainda usa sua nova partição montada em /home
. Se é isso que você quer, faça o seguinte:
Feche todos os arquivos e faça logout. Em seguida, efetue login como root
(use um terminal virtual para isso - pressione Ctrl-Alt-F2) Execute o seguinte:
umount /home
mv /home /home-old
mkdir /home
mount -a
ls /home
ls /home-old
Se tudo estiver bem, faça o logout e faça login como você e tudo ficará bem.
Aliás, o comando para renomear um arquivo usando apenas o conhecimento de seu inode (assumindo que o arquivo está no diretório atual) é:
find . -maxdepth 1 -inum 123456789 -exec mv {} mynewname \;
Onde 123456789
é o número do inode, é claro. (Observe que find
determina o nome do arquivo e seu caminho e passa essa informação para mv
; não há como renomear um arquivo sem envolver o nome de arquivo existente de forma alguma, mas se for só que você não sabe o nome do arquivo, é bem simples.