Rodrigo Ahumada <[email protected]> wrote: > Ricardo Utreras Estrella escribió: > [...] > > Ojo que haciendo: > > cp -r /carpetaorigen/* /carpetadestino > > Te dejas en el tintero los archivos ocultos (que empizan por "."), > > ejemplo: /carpetaorigen/.ESTOYOCULTO > > Mejor copia la carpeta completa asi: > > cp -r /carpetaorigen /carpeta-donde-dejaras-carpetaorigen > > O empaqueta la carpeta usando tar (lo recomendado). > > ¿alguien sabe la razón (histórica) de por qué para copiar directorios > cp exige el -r ? ¿o por qué mv no lo exige?
> La cosa es bien poco evidente, asà que no hay que quejarse si siempre > aparece gente nueva preguntando por lo mismo... Considera lo que mv(1) hacia originalmente: Cambiar el nombre, vale decir, (re)enlazar el archivo con otro nombre o en otro directorio dentro del mismo sistema de archivos. Extender esta operacion a directorios es bastante obvio. Que se puedan mover directorios a otros sistema de archivos es relativamente nuevo (si mal no recuerdo, en BSD 4.2 (198x) no se podia aun). Esto para precisamente compatibilizar con cp(1), que si podia copiar archivos de un sistema de archivos a otro. Por otro lado, cp(1) lo que hace es crear un nuevo archivo y copiar en el lo que lee del original. Leer un directorio y escribir en otro es algo que nunca se ha permitido (al menos lo de "escribir"), y tiene pocazo sentido en general. Si, se transluce la implementacion subyacente (al menos la original). Si, los comandos de Unix son un tanto inconsistentes. Si, SUS y POSIX repararon las tonteras mas notorias, pero igual quedan. Y BSD/GNU agregaron una serie de flags que se hicieron comunes, y ordenaron algo el naipe. Pero igual hay cosas no muy sanas aun. Live with it. -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de Informatica Fono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile 2340000 Fax: +56 32 2797513

