elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux (Moderador: MinusFour)
| | |-+  Como pasar varias carpetas o archivos por comandos en la terminal
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Como pasar varias carpetas o archivos por comandos en la terminal  (Leído 15,405 veces)
wilivarob

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Como pasar varias carpetas o archivos por comandos en la terminal
« en: 13 Junio 2017, 19:06 pm »

Buenas a tod@s, tengo la siguiente duda y por mas que eh buscado por la red no encuentro lo que quiero hacer.

Tengo una usb donde hay varias carpetas y archivos, pero quiero pasar solo las carpetas, solo que son 13.

Se que se usa el comando "cp" (para copiar) y "mv" (para mover), ahora si quiero mover todas las carpetas o copiarlas tendria que hacer lo siguiente:

cp dir1 dir2 dir3 (para copiar)
mv dir1 dir2 dir3 (para mover)

Eh aqui el lio, son 13 carpetas y ya se pueden imaginar escribir "mv (y los 13 nombres de las carpetas), asi que en mi caso hay algo y las carpetas que quiero pasar estan enumeradas (1. Documentos, 2. Papeleria, 3. PDF, etc).

Encontre algo no me acuerdo exactamente si es asi, el lio es que me pasa todo hasta los archivos sueltos y solo quiero pasar las 13 carpetas....

mv /home/media/USB/* /home/wilivarob/Documentos (aqui tengo entendido que con el * me pasaria todo.

Teniendo en cuenta ya mi ejemplo, mi siguiente duda es como se haria si las carpetas no estuvieran enumeradas.

Por adelantado muchas gracias.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #1 en: 13 Junio 2017, 20:58 pm »

Código:
mv /home/media/USB/* /home/wilivarob/Documentos

eso movería todo efectivamente.... pero

Código:
mv /home/media/USB/*/ /home/wilivarob/Documentos

observa el slash luego del asterisco, eso indica carpetas, solo moverá todas las carpetas, dajará los que no son carpetas en el directorio raíz del usb intactos


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
wilivarob

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #2 en: 13 Junio 2017, 22:27 pm »

Código:
mv /home/media/USB/* /home/wilivarob/Documentos

eso movería todo efectivamente.... pero

Código:
mv /home/media/USB/*/ /home/wilivarob/Documentos

observa el slash luego del asterisco, eso indica carpetas, solo moverá todas las carpetas, dajará los que no son carpetas en el directorio raíz del usb intactos

Gracias colega por responder pero la duda ahora es la siguiente, teniendo en cuenta que funciona el comando me pasaria todas las carpetas, pero si no quiero pasar una carpeta como podria hacerlo, teniendo en cuenta el ejemplo que mencione, son 13 carpetas pero si solo quiero pasar 12???
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #3 en: 13 Junio 2017, 23:08 pm »

y que factor excluiría a la 13va carpeta?

es decir, no estás siendo especifico, no es como si el comando sabe lo que piensas, yo tampoco...
« Última modificación: 13 Junio 2017, 23:10 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
wilivarob

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #4 en: 13 Junio 2017, 23:26 pm »

y que factor excluiría a la 13va carpeta?....

Lo que quiero decir es que dado el caso que tuviera que pasar solo 12 carpetas como lo haría, o 10 carpetas.

Si el comando que me indicas pasaría todas las carpetas.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #5 en: 13 Junio 2017, 23:33 pm »

ok, entiendo que solo quieres pasar una parte... pero repito, no estás siendo especifico


siendo 13 y quieres pasar 10, pueden ser 10 cualquiera? o tienen alguna característica? el codigo no puede leer tu mente, tienes que decidir una característica que las agrupe...

imaginate el siguiente caso...


en un escritorio hay 10 documentos y 13 carpetas llenas de papeles y te digo... "trae 12 carpetas, pero no traigas la equivocada" como decides?
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
wilivarob

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #6 en: 13 Junio 2017, 23:45 pm »

ok, entiendo que solo quieres pasar una parte... pero repito, no estás siendo especifico.......

Exacto amigo ese es el hilo y teniendo en cuenta el ejemplo que mencione, como haría para pasar las carpetas del 1 al 12, como haria para pasar todas las carpetas sin la número 5.....

Ten en cuenta que en el ejemplo que doy mis 13 carpetas están enumeradas una carpeta la tengo con el nombre de "1. Documentos" otra ”2. Papeleria", "3. Pdf”, las 13 están enumeradas.

En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #7 en: 14 Junio 2017, 00:08 am »

en este caso es mucho más complejo... como yo lo haría asumiendo que es la capeta cuyo nombre empieza por el numero 5
Código
  1. ls -D /home/media/USB/ | grep -v -E "^5" | while read -r archivo; do mv "/home/media/USB/$archivo" /home/wilivarob/Documentos/; done

ojo que ahí estamos mezclando parametros, inversiones, ciclos y regex XD

pruebalo primero, lo estoy haciendo un poco de mente y no estoy seguro si la sintaxis está 100% bien
« Última modificación: 14 Junio 2017, 00:10 am por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
wilivarob

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #8 en: 14 Junio 2017, 00:48 am »

en este caso es mucho más complejo... como yo lo haría asumiendo que es la capeta cuyo nombre empieza por el numero 5.......

Wuauuu amigo ahora si que quede más perdido pero intento entender....

El código que envías haría pasar todas las carpetas excepto la 5, osea el código lo que hace es retener la carpeta 5 y mover el resto.

Podrías decirme que hace cada cosa, se que aunque no tenga idea que hace -D lo demás listaria las carpetas que hay en la USB, el "|", no estoy seguro pero creo que ejecuta algo como en segundo plano?, Por favor me gustaría saber quiero aprender....

Por otro lado donde dice "/home/media/USB/$archivo"  que haría ese "$archivo"
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como pasar varias carpetas o archivos por comandos en la terminal
« Respuesta #9 en: 14 Junio 2017, 01:06 am »

el | sirve para pasar el standar output del lado izquierdo al standard input de la función de la derecha... basicamente toma la salida y la inyecta al siguiente

Código
  1. ls -D /home/media/USB/

lista solo directorios en dicha carpeta

Código
  1. grep -v -E "^5"

grep busca coincidencias, -v invierte lo conseguido, -E indica que vamos a usar REGEX extendido, ^5 indica "algo empezado por 5" en regex

Código
  1. while read -r archivo; do

while es un ciclo, read es una función que permite por -r leer una entrada linea a linea y salvarla en la variable archivo

Código
  1. mv "/home/media/USB/$archivo" /home/wilivarob/Documentos/

esto mueve de la primera ruta, usando la variable archivo como el nombre del archivo, a la segunda ruta

Código
  1. ; done

cierra el ciclo...

esto es aprender poco a poco bash y mezcla cosas que requieren ya algo de conocimiento en lenguajes de programación... por eso te decía que no era ta simple... tienes que aclararle a la pc que quieres excluir y al ser casos puntuales como el que pones, se empieza a volver extenso el asunto
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comandos y curiosidades en tu terminal
Noticias
wolfbcn 0 2,711 Último mensaje 19 Febrero 2011, 18:05 pm
por wolfbcn
Como pasar argumentos por linea de comandos en wxWidgets
Programación C/C++
Noxware 6 4,834 Último mensaje 3 Diciembre 2014, 09:00 am
por Eternal Idol
Como maximizar la terminal por comandos.
GNU/Linux
Todo-System. 1 2,175 Último mensaje 23 Julio 2015, 16:28 pm
por Slava_TZD
Como maximizar la terminal por comandos.
Scripting
Todo-System. 1 2,310 Último mensaje 21 Julio 2015, 03:33 am
por engel lex
Crear Varias carpetas y Sub-Carpetas
Scripting
P3NDULO 1 5,697 Último mensaje 23 Agosto 2019, 04:05 am
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines