Como sabemos "Everything in Linux" es un archivo, y además el directorio es solo un archivo que contiene otros archivos.
Entonces, no sé si es posible esta "idea loca", pero debería ser de alguna manera de acuerdo con el principio anterior.
En palabras simples, ¿cómo podría cambiar un archivo vacío existente en un directorio? ¿Es posible?
¡Como una tormenta de ideas, pensé que debería haber alguna modificación en los metadatos del archivo y hacerlo como metadatos de directorio!
Cualquier información es apreciada.
ACTUALIZACIÓN: ¡ Seguro que no quiero eliminar un archivo y crear el directorio en su lugar! Solo estoy tratando de saber cuánto es aplicable la filosofía anterior si puedes jugar con algunos metadatos de archivo.
Respuestas:
Logrando la conversión
Crear un sistema de archivos de prueba
Para preservar nuestro sistema de archivos principal de cualquier daño posible después de ejecutar este experimento, vamos a crear un pequeño sistema de archivos dentro de un archivo normal para fines de prueba.
Cree un archivo lleno de cero llamado
test
con un tamaño de 10 megabytes:Cree un sistema de archivos Ext4 dentro del archivo, como si fuera una partición:
Crear algunos archivos y directorios
Ahora tenemos un sistema de archivos completamente funcional dentro del
test
archivo, por lo que vamos a crear algunos archivos y directorios dentro de él.Monte el sistema de archivos recién creado dentro
/mnt
:Crea un archivo y un directorio:
Verifique el contenido del sistema de archivos:
La salida debería ser algo como esto:
Desmontar el sistema de archivos de prueba:
Intercambiando el archivo y la carpeta
Ejecutar
debugfs
contra eltest
archivo con permiso de escritura (-w
marca):Convierte
file
en una carpeta:En el
debugfs
indicador, escriba esto:Aparecerá un mensaje preguntándole un modo; escribe esto:
Siga presionando returnpara dejar los datos restantes tal como están hasta que aparezca el mensaje nuevamente.
Convierte
folder
en un archivo:En el
debugfs
indicador, escriba esto:Aparecerá un mensaje preguntándole un modo; escribe esto:
Siga presionando returnpara dejar los datos restantes tal como están hasta que aparezca el mensaje nuevamente.
Para salir del
debugfs
indicador, simplemente presione qy luegoreturnComprobando el éxito de la operación
Monte el sistema de archivos de prueba nuevamente:
Verifique el contenido del sistema de archivos:
Ahora, debería mostrar el archivo como si fuera un directorio y viceversa :
Script para calcular modos de inodo
Ver guión en GitHub
Desventajas
Otras lecturas
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inode_Table
Gracias a @tallus . Me dio una gran pista:
fuente
0100755
deben ser0100644
para no cambiar los permisos de un archivo ya que 755 dará ejecución para el archivo convertido ...