Linux en Espanol
 
Comando MKDIR terminal gnome (tema #24342)
Publicar nuevo tema  Responder al tema    Foros de discusión -> Estaciones de Trabajo
Autor Mensaje
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-03-23 15:50:11    Asunto: Comando MKDIR terminal gnome

Hola me llamo ricardo y soy nuevo en este foro y en el mundo de ubuntu

pues estaba haciendo una practica para clase y tenia que crear un directorio con el comando (mkdir) desde la raiz ha otro directorio.

parecia facil hasta que ocurrio un error inesperado:

yo en la terminal en ubicacion /

ejecuto:
[code:1:29a1fd24a6]mkdir /home/miusuario/trabajo de clase/[carpeta a crear][/code:1:29a1fd24a6]
y me da error :(

sin embargo al usar el tabulador para completar la ruta me sale:

[code:1:29a1fd24a6]mkdir /home/miusuario/trabajo\ de\ clase/[carpeta a crear][/code:1:29a1fd24a6]

y me funciono a las mil maravillas
pero no me suena que haya que hacer eso de las barras para el directorio con espacios

?alguien me podr?a explicar por que funciona as??

[color=red:29a1fd24a6]gracias y un saludo[/color:29a1fd24a6]:D
RAGNAROK
Forista


Registrado: 2006-01-30
Mensajes: 434

Publicado: 2012-03-23 20:43:13    Asunto:

Si el nombre tiene espacios cada parte del mismo que este separado por espacio puede ser tomada como un argumento distinto.

Para no tener que hacer lo de "escapar el espacio" (aka lo de las barras) puedes simplemente poner el nombre entre comillas.

[code:1:5d7be9cf60]mkdir "trabajo de clase"[/code:1:5d7be9cf60]
TheBalrog
BOFH
Registrado: 2004-04-05
Mensajes: 3012

Publicado: 2012-03-23 20:50:53    Asunto:

Un comentario adicional, no es necesario que agregues toda la ruta si est?s trabajando dentro del directorio donde crear?s el nuevo. Adem?s, un caract?r ?til es ~. Este representa la ra?z de la carpeta del usuario.

Supongamos que mi usuario se llama "alguien". Entonces, la orden:

mkdir ~/nuevodirectorio

Crea un directorio nuevo dentro de /home/alguien llamado "nuevodirectorio".
cazademonios
Forista
Registrado: 2012-03-23
Mensajes: 68

Publicado: 2012-03-24 03:06:10    Asunto: Gracias :)

Gracias me habeis solucionado la duda
el problema es que nunca habia a?adido comillas en una ruta absoluta ni relativa creo que en windows no se usa asi. por eso ser? que no lo sab?a jejeje

muchas gracias por vuestro tiempo :)
miguelgf
Forista


Registrado: 2006-12-28
Mensajes: 621

Publicado: 2012-03-24 11:57:14    Asunto: Re: Gracias :)

Hola[quote:fe25c3592e="cazademonios"]
el problema es que nunca habia a?adido comillas en una ruta absoluta ni relativa creo que en windows no se usa asi.[/quote:fe25c3592e]
En Windows, a l?nea de comandos s? se hace entrecomillando. Lo que sucede es que en Windows cada vez se usa menos la l?nea de comandos.
Prueba a abrir una consola con CMD , vete al disco C:, vete al directorio ra?z con "cd \" y una vez all?, escribe cd archivo y dale al tabulador. Te lo convertir? en cd "Archivos de programa" con sus comilas.
Pero ya que esto es un foro de Linux y no de Windows, te comentar? m?s cosas de las comillas en Linux por si alguna vez te hacen falta:
Debes saber que pod?as haberlo entrecomillado usando comillas dobles o simples, (" o '). En tu caso concreto hubiera dado igual, pero existe una diferencia y es que la [b:fe25c3592e]comilla simple[/b:fe25c3592e] significa [b:fe25c3592e]exactamente tal como est? escrito[/b:fe25c3592e]. La [b:fe25c3592e]comilla doble[/b:fe25c3592e] significa que a?n [b:fe25c3592e]el int?rprete de comandos puede hacer sustituciones de variables[/b:fe25c3592e].
Por ejemplo:
Si tu usuario se llama miusuario, y en tu home tienes la carpeta "trabajo de clase", y vamos a usar para llamar a tu home la variable $HOME (en vez de ~ como te propone TheBalrog y que ser?a lo mejor en este caso, porque se trata de hacer un ejemplo del uso de variables y comillas)
Si escribes
[code:1:fe25c3592e]cd $HOME/trabajo de clase[/code:1:fe25c3592e]
Te dar? un error porque habr? traducido eso por
[code:1:fe25c3592e]cd /home/miusuario/trabajo de clase[/code:1:fe25c3592e]
Es decir le has pasado tres argumentos a cd:
1 /home/miusuario/trabajos
2 de
3 clase
Si escribes
[code:1:fe25c3592e]cd "$HOME/trabajo de clase"[/code:1:fe25c3592e]
Lo har? bien porque lo habr? traducido por:
[code:1:fe25c3592e]cd "/home/miusuario/trabajo de clase"[/code:1:fe25c3592e]
Si escribes
[code:1:fe25c3592e]cd '$HOME/trabajo de clase'[/code:1:fe25c3592e]
Lo har? mal porque no habr? traducido $HOME sino que lo habr? dejado literalmente y no existe un directorio llamado $HOME.

Un ejemplo en el que necesitas usar comilla simple es el siguiente. Un comando que diga :
[code:1:fe25c3592e]El contenido de la variable $HOME es /home/miusuario[/code:1:fe25c3592e]
Ser?a:
[code:1:fe25c3592e]echo El contenido de la variable '$HOME' es $HOME[/code:1:fe25c3592e]
Ahora ya es cuesti?n tuya pensar qu? comillas te hacen falta en el caso exacto al que te enfrentes cada vez. En mi experiencia (normalita, ni mucha ni poca) usas las comillas dobles en un 90% de los casos o m?s y las simples poco. Pero esto es una opini?n subjetiva; otros foreros que se dediquen a otras cosas podr?an darte porcentajes diferentes.

Saludos.
RAGNAROK
Forista


Registrado: 2006-01-30
Mensajes: 434

Publicado: 2012-03-24 12:33:38    Asunto:

Ya que estamos con lo de las comillas, tambien es importante distinguir entre las comillas simples 'estas' y las invertidas `estas`

La comilla simple ya fue explicada por [b:b551e41056]miguelf[/b:b551e41056]

la invertida se utiliza para obtener el resultado de un comando.

Ejemplo

[code:1:b551e41056]touch archivo_`date +%d`[/code:1:b551e41056]

Salu2





La marca registrada Linux (R) se usa siguiendo la sublicensia obtenida del "Linux Mark Institute",
el LICENCIATARIO exclusivo de Linus Torvalds, propietario de la marca en EEUU y otros países
The registered trademark Linux (R) is used pursuant to a sublicense from the Linux Mark Institute,
the exclusive LICENSEE of Linus Torvalds, owner of the mark in the U.S. and other countries