Linux/Unix Shell Scripting - saber si un fichero es mas grande que otro

   
Vista:

saber si un fichero es mas grande que otro

Publicado por shelli (20 intervenciones) el 09/04/2014 18:16:17
buenas tardes. tengo una duda acerca del tamaño de los ficheros, tengo que hacer un scrip que me diga el tamaño 2 fichero y me diga cual es el mayor, y no soy capaz de comparalos y me diga cual es el mayor, ahi les dejo el codigo

1
2
3
4
5
6
7
8
9
function fichero (){
#du muestra el tamaño del fichero
cd $p1|du -h $p2 $p3
if [du -h $p2 -gt du -h $p3]
then
echo el mayor es $p2
else echo el mayor es $p3
fi
}

SI me pueden ayudar a resolverlo
Ademas me gustaria mostrarlos en MB y no encuentro el comando adecuado para que me lo de en esas unidades

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Linux/Unix Shell Scripting
- Código fuente de Linux/Unix Shell Scripting
- Cursos de Linux/Unix Shell Scripting
- Chat de Linux/Unix Shell Scripting
información
Códigos de Linux/Unix Shell Scripting
- transformar NRG a ISO
- Arrays en bash
- desconectar red y apagar
Imágen de perfil de xve

saber si un fichero es mas grande que otro

Publicado por xve (254 intervenciones) el 09/04/2014 19:06:55
Hola Shelli, el -h es para los humanos... te pone como 3M, 3G, ... quita el -h, y creo que te funcionará.

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

saber si un fichero es mas grande que otro

Publicado por shelli (20 intervenciones) el 09/04/2014 19:15:51
no me funciona si que me da el tamaño ero sin unidades, pero no los compara

1
2
3
4
5
6
7
8
9
10
function fichero (){
#du muestra el tamaño del fichero
cd $p1|du  $p2 $p3
 
if [$p2 -gt $p3]
then
echo el mayor es $p2
else echo el mayor es $p3
fi
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

saber si un fichero es mas grande que otro

Publicado por xve (254 intervenciones) el 09/04/2014 22:01:44
Hola Shelli, no se muy bien que es $p1, $p2 y $p3... entiendo que $p1 es el directorio y el resto los dos nombres de los archivos...

Miro como yo lo haría:
1
2
3
4
5
6
7
8
9
10
11
12
13
p1="carpeta"
p2="archivo1"
p3="archivo2"
 
tamano1=`du $p1/$p2 | awk '{print $1}'`
tamano2=`du $p1/$p3 | awk '{print $1}'`
 
if [ $tamano1 -gt $tamano2 ]
then
    echo "el mayor es $p2"
else
    echo "el mayor es $p3"
fi

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

saber si un fichero es mas grande que otro

Publicado por shelli (20 intervenciones) el 09/04/2014 23:40:23
muchas gracias, si que funciono ahora correctamente el if
pero sigo dandole vueltas a lo de que muestre el tamaño del fichero en MB , se que como lo tenia du -h me mostraba 2K pero no se como puedo hacer para que sean MB

Muchas gracias

tamano1=`du $p1/$p2 | awk '{print $1}'`
echo $tamano1
tamano2=`du $p1/$p3 | awk '{print $1}'`
echo $tamano2
if [ $tamano1 -gt $tamano2 ]
then
echo "el mayor es $p2"
else echo "el mayor es $p3"
fi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

saber si un fichero es mas grande que otro

Publicado por xve (254 intervenciones) el 10/04/2014 08:56:16
Hola Shelli, si utilizas -b te devolverá bytes, por lo que si lo divides entre 1024 tendrás Kb y si lo divides nuevamente por 1024 tendrás Mb.

Pero ten en cuenta, que dependiendo del archivo, te pueden salir decimales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar