
Utilizo el término "archivo contenedor" para describir cualquier archivo que prácticamente contiene uno o dos o más archivos. Algunos ejemplos serían unarchivo taro undirectorio.
Digamos que abro un archivo tar con algún software GUI de archivado o digamos que abro un directorio con algún explorador de archivos GUI OS y en ambos casos, de hecho, un archivo, o dos o más archivos que soncontenidoen el archivo contenedor aparecen ante mí (en la primera y más básica profundidad, sin contar "profundidades más profundas").
En general, ¿cuál es la profundidad de estos archivos, en sistemas Unix y Linux? ¿Es profundidad 0 o profundidad 1?
Respuesta1
Para responder a su pregunta, citaría el uso de profundidad en el find
comando. Puede utilizar la bandera --maxdepth
para definir la profundidad máxima en la que desea buscar ciertos archivos. Ahora, si está en un directorio (o archivo contenedor para usar sus palabras, aunque generalmente está asociado con Docker) con la siguiente estructura
.
└── dir1
└── file1
(este es el resultado del comando de árbol) y ejecute, find -maxdepth 0
obtendrá solo .
. Cuando lo ejecuta find -maxdepth 1
, obtiene el contenido real del directorio en el que se encuentra, también conocido como ./dir1
. Para continuar con esto, una búsqueda con max Depth 2, por supuesto, también resulta, ./dir1/file1
pero eso ya debería ser obvio.
En resumen, los archivos contenidos en el directorio en el que se encuentra actualmente están en la profundidad 1, no en 0.
Respuesta2
Esta pregunta parece ser sobre terminología. Tienes razón al tener cuidado, el término "profundidad" puede ser complicado y siempre me encuentro revisando mi propia lógica antes de usarlo.
Para entender por qué la respuesta es 1 (y es 1), hay que entender que la decisión de indexar desde 0 o indexar desde 1 no es arbitraria. En realidad, describe dos cosas completamente diferentes. Para explicarlo, piense en una lista que contenga algunos colores [rojo, azul, morado]. Podemos hablar de esta lista de dos maneras:
- En la lista:1st es rojo,2y es azul,3rd es morado. Claramente indexando desde 1
- El morado es2lejos del inicio de la lista, el azul es1lejos del inicio de la lista, el rojo es el inicio de la lista -0. Indexación desde 0.
En informática, se prefiere utilizar un desplazamiento (indexación desde 0) porque simplifica la programación de muchas matemáticas. Pero es importante entender que no estamos simplemente "indexando desde cero", sino que estamos describiendo algo diferente.
Indexar desde cero es (virtualmente)siempre una compensación, incluso si hay un cero fantasma.
Con find
terminología, buscar indexa desde 0 como un desplazamiento del directorio actual. Por lo tanto, -maxdepth 1
significa comenzar en el directorio actual y finalizar explorar 1 capa. Lo mismo find . -maxdepth 0
ocurre simplemente .
porque está comenzando en el directorio actual y no expande nada.
Hasta esta discusión, lo más probable es que nunca hayas considerado encontrar la profundidad 0. El 0 es un fantasma (no es realmente útil).
A partir de ahí, en la terminología de contenedores una profundidad de 0 tendría que significar expandir cero archivos zip. Significaría que no hay ningún contenedor. Una sola capa de profundidad (un zip que contiene otros archivos pero no otros zips) siempre sería de profundidad 1 porque comienzas fuera del contenedor y tienes que expandir un contenedor para extraer los archivos.