Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Runex en 12 Mayo 2012, 17:28 PM

Título: [Reto Bash] It's a dir?
Publicado por: Runex en 12 Mayo 2012, 17:28 PM
Es el mismo reto que el planteado por EleKtro pero en bash, así que dificultad ninguna :).

Nombre:      It's a dir?
Dificultad:     2/10
Objetivo:      Diferenciar entre directorios y archivos
Indicaciones:
Ejemplo:    
(http://i47.tinypic.com/1zv4f40.png)(http://i46.tinypic.com/sbhs9t.png)
Solución: http://pastebin.com/Z6WTYpAS

Solucionado:

1-> Leo Gutiérrez
Título: Re: [Reto Bash] It's a dir?
Publicado por: leogtz en 18 Mayo 2012, 15:53 PM
[ -f "$in" ] && echo -e "Es un archivo regular."
[ -d "$in" ] && echo -e "Es un directorio."

Creo que con eso basta.
Título: Re: [Reto Bash] It's a dir?
Publicado por: Runex en 18 Mayo 2012, 16:46 PM
Cita de: Leo Gutiérrez. en 18 Mayo 2012, 15:53 PM
[ -f "$in" ] && echo -e "Es un archivo regular."
[ -d "$in" ] && echo -e "Es un directorio."

Creo que con eso basta.

Se, esa era la solución, hubiese estado mejor el source entero pero eso era lo único trascendente :)

Título: Re: [Reto Bash] It's a dir?
Publicado por: Puntoinfinito en 21 Febrero 2013, 11:47 AM
Yo lo haré en Python, ya que así práctico x)

Código (python) [Seleccionar]

#! /usr/local/bin/Python-3.3.0/python

import os.path
filee = str(input("Put an string >> "));

if os.path.isdir(filee):
        print("Es un directorio");

elif os.path.isfile(filee):
        print("Es un archivo");
else:
        print("No existe");

Título: Re: [Reto Bash] It's a dir?
Publicado por: jdomgo3 en 21 Enero 2014, 21:17 PM
Se que llego con casi un año de retraso, pero en shell script hay varias maneras de comprobar si existe un fichero, directorio, link o indiferente. Aquí va mi aportación de lo mas simple:

Código (bash) [Seleccionar]
D=/tmp
A=/$D/archivo.txt
L=/$D/link

# Para comprobar si es un directorio
if [ -d $D ];then echo "$D es un directorio.";fi

# Para comprobar si es un fichero
if [ -f $A ];then echo "$A es un fichero.";fi

# Para comprobar si es un link simbólico
if [ -L $L ];then echo "$L es un link simbólico.";fi

# Para comprobar simplemente si existe, sea lo que sea, fichero, directorio o link
if [ -e $A ];then echo "$A existe.";fi
Título: Re: [Reto Bash] It's a dir?
Publicado por: Yoel Alejandro en 6 Febrero 2014, 03:09 AM
Pero cuidado, el hecho de que no sea tipo f, no significa que sea un directorio. En UNIX existen tipos de fichero que no son ni directorio ni archivo normal, como links simbólicos, o dispositivos especiales de bloque.
Título: Re: [Reto Bash] It's a dir?
Publicado por: jdomgo3 en 7 Febrero 2014, 07:28 AM
En realidad hay 7 tipos definidos en los sistemas BDS y System V que son:


Un saludo.
Título: Re: [Reto Bash] It's a dir?
Publicado por: acarllc en 28 Marzo 2014, 20:23 PM
Código (bash) [Seleccionar]
#!/bin/bash

if [ $# -gt 0 ]; then
   if [ -e $1 ]; then
      if [ -f $1 ]; then
         echo "Es un archivo"
      elif [ -d $1 ]; then
         echo "Es un directorio"
      fi
   else
      echo "No existe directorio ni archivo con ese nombre"
   fi
fi