Jak wiemy, „Everything in Linux” to plik, a ponadto katalog to tylko plik zawierający inne pliki.
Nie wiem więc, czy ten „zwariowany pomysł” jest możliwy, ale powinien być w jakiś sposób zgodny z powyższą zasadą.
Krótko mówiąc, jak mogę zmienić istniejący pusty plik na katalog. Czy to możliwe?
Podczas burzy mózgów pomyślałem o jakiejś modyfikacji w metadanych pliku i ustawieniu go jako metadanych katalogu, powinno to zrobić !!
Wszelkie informacje są mile widziane.
AKTUALIZACJA: Na pewno nie chcę usunąć pliku i zamiast tego utworzyć katalog! Próbuję tylko dowiedzieć się, na ile powyższa filozofia ma zastosowanie, jeśli można odtwarzać za pomocą niektórych metadanych plików.
Odpowiedzi:
Osiągnięcie konwersji
Tworzenie testowego systemu plików
Aby uchronić nasz główny system plików przed możliwymi uszkodzeniami po uruchomieniu tego eksperymentu, stworzymy mały system plików w normalnym pliku do celów testowych.
Utwórz plik wypełniony zerami o nazwie
test
o rozmiarze 10 megabajtów:Utwórz system plików Ext4 w pliku, tak jakby był partycją:
Tworzenie niektórych plików i katalogów
Teraz mamy w pełni funkcjonalny system plików wewnątrz
test
pliku, więc stworzymy w nim niektóre pliki i katalogi.Zamontuj nowo utworzony system plików wewnątrz
/mnt
:Utwórz plik i katalog:
Sprawdź zawartość systemu plików:
Dane wyjściowe powinny wyglądać mniej więcej tak:
Odmontuj testowy system plików:
Zamiana pliku i folderu
Uruchom
debugfs
natest
pliku z uprawnieniem do zapisu (-w
flaga):Konwertuj
file
na folder:W
debugfs
wierszu polecenia wpisz:Pojawi się monit z pytaniem o tryb; wpisz to:
Naciskaj, returnaby pozostawić pozostałe dane bez zmian, aż pojawi się ponownie monit.
Konwertuj
folder
na plik:W
debugfs
wierszu polecenia wpisz:Pojawi się monit z pytaniem o tryb; wpisz to:
Naciskaj, returnaby pozostawić pozostałe dane bez zmian, aż pojawi się ponownie monit.
Aby wyjść z
debugfs
monitu, po prostu naciśnij, qa następniereturnSprawdzanie powodzenia operacji
Zamontuj testowy system plików ponownie:
Sprawdź zawartość systemu plików:
Teraz powinien pokazać plik tak, jakby był katalogiem i odwrotnie :
Skrypt do obliczania trybów i-węzłów
Zobacz skrypt na GitHub
Handicapy
Dalsza lektura
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inode_Table
Dzięki @tallus . Dał mi świetną wskazówkę:
źródło
0100755
muszą być0100644
za to, aby nie zmieniać uprawnień do pliku, ponieważ 755 da wykonanie przekonwertowanego pliku ...