¿Cuál es la diferencia entre la estructura de directorios y el sistema de archivos ?
Los directorios y el sistema de archivos de Unix / Linux tienen el siguiente aspecto:
Los siguientes dos directorios obviamente los conocemos.
/home/abc/xyzdir1 --is a directory
/home/abc/xyzdir2 -- is a directory
Los siguientes tres ejemplos dicen sistema de archivos.
/proc -- is a file system
/ -- is a file system
/bin -- is a file system
¿Cómo puedo identificar cuál es un sistema de archivos y un directorio de los fragmentos de código anteriores?
filesystems
directory-structure
proc
Premraj
fuente
fuente

/proc,/y/binde sus ejemplos), por lo que no tengo claro cómo quiere identificar la "diferencia"./proc,/y/binson directorios. No son "sistemas de archivos". ¿Quizás quiere decir que desea identificar qué directorios son también el punto de montaje (raíz) de su sistema de archivos?Respuestas:
La gente no usa el sistema de archivos con mucho cuidado. En sus ejemplos, diría eso
/,/biny/procson sistemas de archivos porque una partición completa (como/dev/sdb1) está montada en esos directorios. Mi sistema Arch Linux no tiene/binun sistema de archivos, por lo que este ejemplo no es perfecto, pero ...El inodo número 2 es tradicionalmente el inodo "raíz" de todo un sistema de archivos en disco (que es el otro uso de la frase).
/,/booty/hometodos tienen el inodo número 2, mientras/procque, que se presenta completamente por el núcleo y no tiene presencia en el disco, tiene el inodo 1. Esos números de inodo indican que un sistema de archivos completo en el disco o un sistema de archivos virtual se monta con ese nombre.La oración '
/home/abc/xyzdir1es un directorio "básicamente significa que no se monta ningún sistema de archivos en el disco con ese nombre. Si haces el mismols -lidcomando en un directorio, obtienes algo como esto:El número de código 3670039 es el inodo asignado en el sistema de archivos en disco montado (en mi máquina) en
/home.También puede encontrar sistemas de archivos invocando el
mountcomando. Enumera todos los sistemas de archivos montados y dónde están montados.fuente
/,/biny/procson sistemas de archivos porque una partición completa ... está montada en esos directorios. Esto no es cierto para/proc, como la respuesta más tarde implica.A riesgo de simplificar demasiado,
Desde que me pidieron un bis,
Si desea código, consulte la primera mitad de esta respuesta a Cómo determinar si un sistema de archivos Linux pertenece a un sistema en ejecución , la parte que verifica la validación
root_dir. Simplemente está haciendo lo que dijo Bruce; verificar que es un directorio y verificar si su número de inodo es 1 o 2.fuente
A mi modo de ver, un sistema de archivos, en el sentido de UNIX, es una forma de implementar un árbol de directorios (estructura de directorios), o más precisamente, una forma de implementar la API del sistema de archivos UNIX. El sistema de archivos raíz está respaldado por una implementación particular, y cada vez que ingresa un directorio de punto de montaje, ingresa un subárbol respaldado por algo diferente.
La interfaz es siempre la misma, pero en un caso, tiene una partición de disco en particular en la parte posterior, en otro caso, habrá un programa que ni siquiera escribe en un dispositivo de almacenamiento. El
procsistema de archivos estará respaldado por un software que expone los elementos internos del núcleo; Unatmpfscopia de seguridad estará respaldada por un software que escribe en la RAM y otros sistemas de archivos pueden escribir en la red o en otro lugar.En el sentido de la palabra que no es UNIXy, un sistema de archivos es una forma de organizar el almacenamiento de datos.
ext4,btrfs,fat, Yntfsson los sistemas de archivos en este sentido, sino también en el sentido UNIXy-que implementan la API del sistema de archivos.procno se clasificaría como un sistema de archivos dentro de este paradigma, más limitado, ya que no organiza el almacenamiento de datos.TL; DR:
fuente
Si bien la aceptación del directorio no es ambigua cuando se habla de sistemas de archivos, el sistema de archivos puede significar cosas diferentes dependiendo de lo que esté hablando.
En sus ejemplos, todas las rutas enumeradas son directorios, pero solo algunos de ellos también son puntos de montaje de los sistemas de archivos.
Puede usar el
dfcomando para saber en qué sistema de archivos se encuentra un determinado archivo o directorio, y elmountcomando en la mayoría de las implementaciones de Unix y Linux para averiguar qué sistemas de archivos están presentes en su máquina, su tipo y sus puntos de montaje. p.ej:La afirmación
/bines que un sistema de archivos es dudoso,/bincasi siempre está montado/.fuente
Primero, una corrección a su suposición sobre un sistema de archivos y un directorio. Un sistema de archivos contiene uno o más directorios. Usando sus ejemplos
/proc,/y/binson directorios. No son "sistemas de archivos" en sí mismos, pero podrían ser la raíz de sus respectivos sistemas de archivos.Si desea identificar qué directorios son también el punto de montaje (raíz) de su sistema de archivos, puede usar algo como esto:
fuente
File System es una metodología para organizar y almacenar lógicamente grandes cantidades de datos de manera que el sistema sea fácil de administrar. un sistema de archivos consta de archivos, relaciones con otros archivos, así como los atributos (tipo de archivo, nombre de archivo, tamaño de archivo, propietario del archivo, marca de tiempo del archivo) de cada archivo.
Directorios : por ejemplo, el sistema de archivos Unix se compone esencialmente de archivos y directorios. Los directorios son archivos especiales que pueden contener otros archivos. el directorio superior es
/(barra oblicua), con los directorios directamente debajo de los directorios del sistema./Raíz del sistema de archivos Linux/binLos archivos ejecutables binarios se guardan aquí/bootLos archivos relacionados con el arranque se guardan aquí/devLos archivos del dispositivo se guardan aquí/etcLos archivos de configuración de todo el sistema se guardan aquí/homeUbicación de los directorios principales de usuarios habituales./lib64Las bibliotecas para ejecutables binarios se mantienen aquí./mntPunto de montaje temporal para DVD-Rom, unidad flash USB./optLos programas opcionales se instalan aquí como archivos de programa en Windows/procKernel pseudo sistema de archivos/rootDirectorio de inicio de superusuario root/sbinLos archivos ejecutables binarios del sistema se guardan aquí/tmpLos archivos temporales se guardan aquí./usrSistema de archivos de usuario/varLos archivos variables se guardan aquí/srves una carpeta de servicio, contiene datos específicos del sitio que sirve este sistema.src y para más
Los siguientes dos directorios son directorios definidos por el usuario:
fuente
Si solo necesita un comando que le indique si la ruta es un directorio o no, use mountpoint (1) .
Para mí imprime
Lo bueno es que el estado de salida indica lo mismo nuevamente para que pueda usarlo en sus scripts de esta manera:
fuente