Autor
|
Tema: Como pasar varias carpetas o archivos por comandos en la terminal (Leído 15,477 veces)
|
wilivarob
Desconectado
Mensajes: 29
|
el | sirve para pasar el standar output del lado izquierdo al standard input de la función de la derecha..... Me acaba de dejar sin palabras, tendré que tener en cuenta el comando ahora que llegue a casa y ponerlo a prueba, me habían recomendado instalar midnight commander, pero la verdad pensé que al hacerlo por comandos no fuera tan extenso y peor aún saber programación, pero bueno nunca es tarde para aprender..... Muchas gracias amigo
|
|
|
En línea
|
|
|
|
engel lex
|
prueba por lo menos imagina que tienes una carpeta done hay 5 archivos ls archivo1.x cosas.y hola1.x hola2.x hola3.x si usas grep sin más argumentos te filtra de manera simple buscando cualquier coincidencia ls | grep hola hola1.x hola2.x hola3.x
|
|
|
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
Mensajes: 29
|
prueba por lo menos..... Mi querido colega, te cuento que estoy muy sorprendido, eh echo lo del comando y efectivamente me paso todas las carpetas con sus archivos, pero me paso una carpeta que no queria que tiene el nombre de "Otros", asi que aplique la otra (aplique unos cambios menores, en vez de utilizar "mv" use "cp")... ls -D /home/media/USB/ | grep -v -E "^Otros" | while read -r archivo; do cp -r "/home/media/USB/$archivo" /home/wilivarob/Documentos/; done y vaya que si, solo que en este caso se pasaron archivos sueltos, creei que en esta sección añadiendole el nombre del archivo suelto que no queria que pasara funcionara grep -v -E "^Otros" "^20170506.png" pero salta error "grep: ^20170506.png: No existe el fichero o el directorio" Pero la verdad es lo que necesito, solo faltaria saber como ir añadiendo a ese comando lo que no quiero que pase. NOTA: Eh estado haciendo unas pruebas y la unica que me funciono fue la siguiente, no se si exista algun metodo mas corto.... | grep -v -E "^Otros" | grep -v -E "^20170506.png" | Ahora otra cosa que me quedo sonando y es que este comando la "-D", me deberia mostrar solo directorios (me imagino carpetas), y al aplicarlo me sale todo como si solo aplicara "ls", es como si "-D" no aplicara
|
|
« Última modificación: 14 Junio 2017, 04:49 am por wilivarob »
|
En línea
|
|
|
|
engel lex
|
no grep debes pasarle un solo argumento, si pasas un segundo es un archivo a leer... y es harina de otro saco me equivoqué en algo... era el principio, con d minúscula si quisieras coincidir multiples reglas en regex usas por ejempl grep -v -E "^Otros|^20170506\.png" tienes que usar backslash para todo simbolo (como el punto y especialmente el punto, si no quieres caos) y usas barra para separar las reglas
|
|
|
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
Mensajes: 29
|
no grep debes pasarle un solo argumento, si pasas un segundo es un archivo a leer... y es harina de otro saco..... Bueno amigo acabo de hacer el proceso y te cuento lo siguiente, por un lado en cuanto a a es que el primero muestra todo y el segundo solo aparece un punto (.), o sea no hace lo que mencionaste. Y en cuanto el codigo grep -v -E "^Otros|^20170506\.png" no se si te equivocaste pero le quite el "\" y lo unico que noto es que se tarda mas de lo que se demoro con el metodo que use yo...
|
|
|
En línea
|
|
|
|
engel lex
|
disculpa... con ls -d tienes razón lo puse mal en este caso siempre debe llevar el */ sobre el \ si no lo colocas pasa que en regex el punto singifica "cualquier cosa" es decir si buscas algo que empiece con c y termine con o y tenga cualquier cosa en el medio, usas por eso debe llevar \ la sentencia correcta para sacar solo directorios exceptuando uno, debería ser ls -d /home/media/USB/*/ | grep -v -E "^Otros" | while read -r archivo; do cp -r "$archivo" /home/wilivarob/Documentos/; done
esta si la probé y creo que va bien
|
|
« Última modificación: 14 Junio 2017, 06:26 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
Mensajes: 29
|
disculpa... con ls -d tienes razón lo puse mal..... Como esta querido colega, acabo de verificar el ultimo codigo y te cuento lo siguiente, la primera parte ahora si me muestra solo carpetas, al procesar todo el comando, los archivos sueltos no aparecen por ejemplo la imagen 20170506.png (esto debido a la primera parte de que solo muestre solo carpetas, hasta ahi todo perfecto), ahora en la parte , se supone que indica que la carpeta "Otros" no deberia pasar, pues aqui es donde ya empieza el error porque me la pasa, incluso vi que modificaste esta parte do cp -r "$archivo" /home/wilivarob/Documentos/ le quitaste ""/home/media/USB/" que venia antes de "$archivo" y se lo puse a ver y nada aun.... Lo interesante es que el codigo pasa todas las carpetas sin los archivos sueltos y eso es bueno, pero y la carpeta "Otros" que no quiero???
|
|
|
En línea
|
|
|
|
engel lex
|
coincide todo lo que no empiece por otros... si la palabra "Otros" no es con lo que empieze el nombre de archivo, quitale el ^ te recomiendo por lo menos leer lo basico de regex si quieres cambia la parte de do cp -r "$archivo" /home/wilivarob/Documentos/ por así ves que le está pasando al cp sin andar dando tumbos de ciego
|
|
« Última modificación: 14 Junio 2017, 22:49 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
Mensajes: 29
|
coincide todo lo que no empiece por otros... Como estas colega, esta vez te escribo para agradecerte por el comando, esta vez funciono perfectamenta solo era quitar el "^" y solo poner el nombre de la carpeta, asi que muchas gracias, solo te menciono que qice ensañar sacando otra carpeta en este caso "Otros" y "5. Software" y en la parte Añadi como me lo mencionaste y enseñaste grep -v -E "^Otros" | "5. Software y no funciono incluso puse "^5" "5\. Software" "Software" "^Software" Casi todas las combinaciones posibles y siempre me saltaba un error de "bash" solo me funciono asi grep -v -E "^Otros" | grep -v -E "5. Software" De resto excelente exactamente era lo que necesitaba, muchas gracias y espero verte mas adelante, en estos dias publicare unos pequeños problemitas y espero en verdad me puedas ayudar a solucionarlo y pues nada muchas gracias.
|
|
|
En línea
|
|
|
|
engel lex
|
me cito tienes que usar backslash para todo simbolo (como el punto y especialmente el punto, si no quieres caos) y usas barra para separar las reglas el espacio es un simbolo (no es letra ni numero) así que requiere backslash usualmente se denomina por lee sobre regex y no des tumbos de ciego (me molesta personalmente) grep -v -E "^Otros" | grep -v -E "5. Software"
te soy sincero y con este caso has tenido suerte XD pero solo sirve si excluyes... además el punto sustituyó el espacio... regex en wikipedia tiene todo lo que necesites saber y mucho más tambien esto te puede servir mucho https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
|
|
|
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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Comandos y curiosidades en tu terminal
Noticias
|
wolfbcn
|
0
|
2,741
|
19 Febrero 2011, 18:05 pm
por wolfbcn
|
|
|
Como pasar argumentos por linea de comandos en wxWidgets
Programación C/C++
|
Noxware
|
6
|
4,853
|
3 Diciembre 2014, 09:00 am
por Eternal Idol
|
|
|
Como maximizar la terminal por comandos.
GNU/Linux
|
Todo-System.
|
1
|
2,184
|
23 Julio 2015, 16:28 pm
por Slava_TZD
|
|
|
Como maximizar la terminal por comandos.
Scripting
|
Todo-System.
|
1
|
2,318
|
21 Julio 2015, 03:33 am
por engel lex
|
|
|
Crear Varias carpetas y Sub-Carpetas
Scripting
|
P3NDULO
|
1
|
5,773
|
23 Agosto 2019, 04:05 am
por @XSStringManolo
|
|