GNU/Linux - Hilo general

A

Hola buenas,

Estoy intentando hacer un script sencillo pero no hay manera...
Lo que quiero es que el usuario seleccione un archivo, y después haga algo dependiendo del tipo de fichero que ha elegido el usuario.

Para coger el fichero uso lo siguiente:
FILE=$(zenity --title "Elige un archivo" --width="400" --height="300" --file-selection)

Había pensado en hacerlo con "ifs" pero no me sale, lo que intento hacer es algo así:

if [ $(file $FILE) = "tar" ]
then
echo "Es un archivo .tar"
elif [ $(file $FILE) = "txt" ]
then
echo "Es un archivo .txt"
else
echo "No te interesa el fichero"
fi

El problema que tengo no sé qué parámetros usar para que me funcionen los if.
Si pudierais orientarme un poquillo, gracias, un saludo.

PD: Cómo hacéis para poner el código en el mensaje?

3 respuestas
DiSKuN

#3721 antes de nada, ¿la variable FILE te coge bien el nombre del fichero?

si después de declarar FILE, pones:

echo $FILE

Te devuelve el nombre del fichero correcto?

1 respuesta
A

#3722

Gracias por contestar,

Sí, me devuelve la ruta absoluta del fichero.

1 respuesta
Leos

#3721 No seria

if [ $(file $FILE) == "tar" ] o
if [ $(file $FILE) -eq "tar" ]

No se me da muy bien pero creo que es lo que falla.

DiSKuN

#3723 el comando file te devuelve bastante mas texto que "tar", "zip" etc...

Un ejemplo:

gon@thewall ~/D/p/xwing_morada> file test.tar 
test.tar: gzip compressed data, from Unix, last modified: Sun Jul 19 20:06:52 2015
gon@thewall ~/D/p/xwing_morada> 

Así que la condición de :

if [ $(file $FILE) == "tar" ]

no te sirve

1 respuesta
A

#3725

Perdonad, no había indicado que la condición del if estaba mal, lo había puesto para que vierais qué quiero hacer.

El problema que tengo, que no sé cómo hacer para que el if compruebe la extensión (o la salida del comando file)

Gracias, un saludo.

1 respuesta
DiSKuN

#3726 con esta condición:

if [ $(file $FILE) == "tar" ]

Te comprueba si la salida del comando file es igual con el string "tar", que no lo es.

Si quieres comprobar las extensiones de los ficheros, échale un ojo a este post:
http://stackoverflow.com/questions/407184/how-to-check-the-extension-of-a-filename-in-a-bash-script

A

Bueno pues ya está, muchas gracias.

Os dejo el código por si tenéis curiosidad:

<code>
FILE=$(zenity --title "Archivar ficheros" --width="400" --height="300" --file-selection)
CHECK=$(file -ib $FILE)

if test "$CHECK" == "application/x-tar; charset=binary"
then
echo "Es un fichero .tar"
elif test "$CHECK" == "text/plain; charset=us-ascii"
then
echo "Es un fichero .txt"
elif test "$CHECK" == "application/gzip; charset=binary"
then
echo "Es un fichero .gzip"
elif test "$CHECK" == "application/x-bzip2; charset=binary"
then
echo "Es un fichero .bzip2"
else
echo "No interesa el fichero"
fi
</code>

Un saludo.

1 respuesta
DiSKuN

#3728 para poner el formáto de código tienes que poner el código es con [ ], no con < >

Aziwar

Sobre el tema de las certificaciones yo soy de la opinión de que las neutrales no sirven sino para aumentar / afianzar el conocimiento que uno tiene sobre un tema, pero de cara laboral siempre las de un vendor van a tener más peso, y en este caso el claro ganador es Red Hat.

Yo tengo CompTIA Security+ y ni pienso renovarla, y viendo que me "estoy cambiando de campo" más hacía software, pues menos aún. Este tipo de certificaciones neutrales solo sirven para cumplir requisitos específicos de puestos públicos , y aquí por ejemplo no los hay al contrario que en EEUU.

SrFreak

#3721 ¿Has pensado en usar CASE en lugar de una chorronelada de ifs anidados?

2 respuestas
A

#3731

Una vez que me salió el de los "ifs" probé haciéndolo con "case" y me decanté por este último, es mucho más limpio.

Un saludo.

1 respuesta
Slowduck

¿Alguien sabe cómo abrir archivos .shs?
He estado buscando e intentándolo por todos los medios, pero no hay manera.

2 respuestas
SrFreak

#3733 .shs no parece un formato válido... Hazle un

$ file archivo.shs

y pásanos la salida del comando. Nos dirá qué tipo de archivo es realmente.

#3732 Mucho más legible ;) Trucos de programador.

2 respuestas
E

#3734 #3733 https://support.microsoft.com/en-us/kb/138275 prueba con el openoffice/libreoffice

1 respuesta
Slowduck

#3734
Composite Document File V2 Document, Little Endian, Os: Windows, Version 5.1
Creating Application: Microsoft Office Word

#3735 Ya lo he abierto con LibreOffice, pero solo me aparecen caracteres extraños.
Me pasa igual con el resto de procesadores de texto.

1 respuesta
E

#3736 si quieres pasarmelo por privado intento abrirlo aquí con un ms office del año la pera, tal vez funcione xD

1 respuesta
AikonCWD

Os llevo viendo con arch, jamás he tocado esa distribución. No está basada en "nada", verdad? Es decir no es como centos que se basa en redhat o ubuntu que se basa en debian, right?

Recomendáis que me anime a instalar arch? Como pista os digo que soy ubuntu-user y no demasiado experimentado en el mundo linux. Lo maximo que he trasteado ha sido con CentOS y UbuntuServer en el trabajo (mysql y apaches principalmente) y raspberry en modo friki en mi casa.

Sobreviviré con arch? Cuesta adaptarse partiendo con una mente de "ubuntu/debian"? Saludos!

2 respuestas
sPNkKkKkKkKk

#3738 Yo nunca me he puesto con ella por falta de tiempo. Pero con la pedazo de wiki que tiene no creo que tengas muchos problemas.

Slowduck

#3737 Nada, no te preocupes. Lo que quería saber es si había alguna manera de abrir este tipo de archivos en Linux, sé que puedo abrirlo desde Windows con MS Office. Aún así, muchas gracias. :D

1
Saphyel

#3738 pues esta bastante mas al dia que ubuntu, antes de usar un pacman -syu tienes que mirar que hay en las actualizaciones y no hay un installer friendly como el de ubuntu, eso si como dicen por ahi la documentación es la mejor que existe dentro y fuera de linux, si tienes tiempo libre esta muy bien.

1 respuesta
AikonCWD

#3741 Bueno, pues tras dedicarle un rato voy a mandar a la mierda el arch, demasiado complejo para el poco tiempo que tengo. No detecta la distribución del teclado y no hay una forma sencilla/guiada para instalar el sistema operativo.

Me he leido la wiki y veo que hay que particionar a mano, escoger GPT o MBR, montar el home, swap y todo a manija y con comandos. Veeeeenga hasta luego. Si llega el día que alguien se curre un script guiado para la instalación lo probaré, si no me quedo con debian/ubuntu, que para tontos sin tiempo va de lujo.

gL

2 respuestas
DiSKuN

#3742 tu solucion se llama antergos

2 1 respuesta
Saphyel

#3742 existe archiso para esos casos cc/ #3743

NeO_PedritO

Sobre lo que venía comentando desde #3600 y anteriores (gestor de descargas para server headless), al final mantuve pyload y le di una oportunidad a jdownloader2 (con esto, y si funciona #3597) pero usando como interfaz la plataforma de http://my.jdownloader.org/ , que se conecta a tu server y lo gestionas desde ahí, no está mal. Por el momento voy a mantener ambos, a ver como se complementan.

Eso si, como siempre java chupa de ram y cpu como un condenado, +250MB de ram en uso y ambos núcleos al 90-100% cuando está descargando o actualizando (@bananapi).

1
B

Necesito ayuda. Por primera vez que tengo un SSD y no sé como instalarle nada.
El Lubuntu por ejemplo, en la pantalla de requirimientos me pone que no hay espacio suficiente (tengo 256gb) y abro el gparted veo que el disco está particionado: /dev/sr0 /dev/zram0 ... /dev/zram7

Qué hago?

1 respuesta
Aziwar

#3746 emmm.. un SSD y un HDD no difieren en nada a la hora de una instalación eee. Es exactamente lo mismo.

1 respuesta
B

#3747 Es lo que pensaba xD. Pero porque me sale así? Borro todas las particiones (ojo, son /dev/*) y creo una tabla nueva GPT?

pd: el ssd lo tengo metido un portatil dell.

1 respuesta
herre

#3748 /dev/sr* y /dev/zram* no son los ficheros que representan tu SSD.

Haz un lsblk para encontrar el fichero correcto, debería ser algo tipo /dev/sdX

1 respuesta
B

#3749
lubuntu@lubuntu:$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223.6G 0 disk
└─sda1 8:1 0 223.6G 0 part
sr0 11:0 1 702M 0 rom /cdrom
loop0 7:0 0 628.3M 1 loop /rofs
zram0 251:0 0 493.1M 0 disk [SWAP]
zram1 251:1 0 493.1M 0 disk [SWAP]
zram2 251:2 0 493.1M 0 disk [SWAP]
zram3 251:3 0 493.1M 0 disk [SWAP]
zram4 251:4 0 493.1M 0 disk [SWAP]
zram5 251:5 0 493.1M 0 disk [SWAP]
zram6 251:6 0 493.1M 0 disk [SWAP]
zram7 251:7 0 493.1M 0 disk [SWAP]

Es cosa de Lubuntu que no me detecta bien el disco?

1 respuesta

Usuarios habituales

Tags