Możesz zmienić nazwę pliku (katalogu lub cokolwiek), korzystając tylko ze znajomości i-węzła find
, ale jeśli (a) system plików zawierający go nie jest zamontowany lub jeśli (b) istnieje inny system plików zamontowany w niepustym katalogu, który zawiera interesujący cię plik, plik po prostu nie jest dostępny dla twojego systemu. W przypadku (a) musisz zamontować system plików, zanim będziesz mógł cokolwiek zrobić z zawartością, w tym zmienić jego nazwę, aw przypadku (b) musisz odmontować system plików, który jest zamontowany „nad” katalogiem zawierającym plik, którego nazwę chcesz zmienić. Wygląda na to, że pytasz o przypadek (b).
Jeśli dobrze cię rozumiem, starasz się, aby twój stary /home
katalog (który znajduje się na głównej partycji) był dostępny, wciąż korzystając z nowej partycji zamontowanej na /home
. Jeśli tego chcesz, wykonaj następujące czynności:
Zamknij wszystkie pliki i wyloguj się. Następnie zaloguj się jako root
(użyj do tego wirtualnego terminala - naciśnij Ctrl-Alt-F2) Uruchom następujące polecenie:
umount /home
mv /home /home-old
mkdir /home
mount -a
ls /home
ls /home-old
Jeśli wszystko jest w porządku, wyloguj się i zaloguj ponownie jako Ty i wszystko powinno być w porządku.
Nawiasem mówiąc, polecenie zmiany nazwy pliku przy użyciu tylko wiedzy o jego i-węźle (zakładając, że plik znajduje się w bieżącym katalogu) to:
find . -maxdepth 1 -inum 123456789 -exec mv {} mynewname \;
Gdzie 123456789
oczywiście jest numer i-węzła. (Zauważ, że find
określa nazwę pliku i jego ścieżkę i przekazuje te informacje do mv
; nie ma żadnego sposobu, aby zmienić nazwę pliku bez angażowania istniejącej nazwy pliku w jakikolwiek sposób, ale jeśli tylko nie znasz nazwy pliku, jest to dość prosty.)