\documentclass[12pt,a4paper]{article} \usepackage[spanish]{babel} \usepackage{graphicx} \title{Tema IV Ejercicio III: Comandos DOS} \author{Nicolás A. Ortega Froysa} \begin{document} \maketitle \pagebreak \tableofcontents \pagebreak \section{Hoja De Control Del Documento} \begin{table}[h!] \begin{center} \caption{Documento/Archivo} \label{tab:document} \begin{tabular}{|l|c|l|c|} \hline {\bf Fecha Última Modificación} & \the\day/\the\month/\the\year & {\bf Versión/Revisión} & v01r02 \\ \hline {\bf Fecha Creación} & \the\day/\the\month/\the\year & \hfill & \hfill \\ \hline {\bf Fecha Finalización} & \the\day/\the\month/\the\year & \hfill & \hfill \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \caption{Registro De Cambios} \label{tab:registro-cambios} \begin{tabular}{|c|c|c|} \hline {\bf Versión/Revisión} & {\bf Página(s)} & {\bf Descripción} \\ \hline v01r01 & Todas & Creación y elaboración del documento. \\ \hline v01r02 & 4-7 & Añadir contenidos nuevos. \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \caption{Autores Del Documento} \label{tab:autores} \begin{tabular}{|c|c|} \hline {\bf Apellidos, Nombre} & {\bf Curso} \\ \hline Ortega Froysa, Nicolás Andrés & 1 \\ \hline \end{tabular} \end{center} \end{table} \begin{table}[h!] \begin{center} \begin{tabular}{|p{4cm}|p{4cm}|p{4cm}|} \hline {\bf Preparado} & {\bf Revisado} & {\bf Aprobado} \\ \hline Ortega Froysa, Nicolás Andrés & \hfill & \hfill \\ \hline \end{tabular} \end{center} \end{table} \pagebreak \section{Creación de Archivos y Directorios} Para poder crear carpetas en el {\em shell} de DOS, usamos el comando \texttt{mkdir}. Esto también lo podemos usar para crear todo un {\em path} de directorios, uno dentro de otro, simplemente especificando el camino. De este modo podemos crear una estructura de directorio con los siguientes comandos: \begin{verbatim} >mkdir carp1\carp11 >mkdir carp1\carp12 >mkdir carp2\carp21 >mkdir carp3 \end{verbatim} \begin{figure} \centering \includegraphics[width=0.75\linewidth]{imgs/00-tree.png} \caption{Comando \texttt{tree} de los archivos.} \label{fig:tree} \end{figure} Si ahora corremos el comando \texttt{tree} dentro de este directorio (que en nuestro caso se denomina \texttt{practica}) veremos toda la estructura de este directorio y sus subdirectorios (figura \ref{fig:tree}). A partir de aquí podemos añadir archivos dentro de estos directorios. Añadiremos los archivos siguientes con cualquier editor de texto: \begin{itemize} \item \texttt{arch11.txt} en \texttt{carp11} \item \texttt{arch12.txt} en \texttt{carp12} \item \texttt{arch21.txt} en \texttt{carp21} \end{itemize} También se puede crear simplemente un archivo y copiarlo. Esto se podría hacer con el procedimiento siguiente, creando el primer archivo con el contenido ``test'' y copiándolo a los demás directorios con otro nombre: \begin{verbatim} # Crear archivo arch11.txt >echo test >> carp1\carp11\arch11.txt # Copiar el archivo primero a las distintas carpetas con otro # nombre >copy carp1\carp11\arch11.txt carp1\carp12\arch12.txt >copy carp1\carp11\arch11.txt carp1\carp21\arch21.txt \end{verbatim} \section{Mover, Copiar, y Renombrar} Aquí acabamos de ver el comando \texttt{copy}, que sirve para copiar archivos. También existe otro que es \texttt{move} para mover los archivos. Estos funcionan con dos argumentos: el archivo original, y el archivo destino. En el caso del archivo destino, si se especifica un directorio ya existente en vez de un nombre de archivo para el nuevo destino, simplemente se copiará/moverá a ese directorio con el mismo nombre de archivo. Como podemos imaginar con lo dicho anteriormente, el comando \texttt{move} se puede usar para cambiar el nombre de un archivo simplemente especificando el nuevo nombre como destino. Cuando copiamos archivos de un lugar a otro, podemos concatenar el contenido de dos o más archivos a un nuevo archivo por medio del símbolo \texttt{+}. De este modo, el próximo comando concatenaría el contenido de \texttt{test0.txt} y \texttt{test1.txt} en un archivo \texttt{test01.txt}: \begin{verbatim} >copy test0.txt + test1.txt test01.txt \end{verbatim} \section{Borrando Archivos y Directorios} Para borrar archivos usamos el comando \texttt{del }. Lo cual, para borrar el archivo \texttt{arch21.txt} podemos correríamos el comando siguiente: \begin{verbatim} >del carp2\carp21\arch21.txt \end{verbatim} Si ya estamos dentro de esa carpeta, podemos simplemente correr \texttt{del arch21.txt}, o si queremos hacer referencia a él desde la raíz del dispositivo de almacenamiento (asumiendo que sea \texttt{C:}) correríamos: \begin{verbatim} >del C:\...\carp2\carp21\arch21.txt \end{verbatim} Este comando no es posible usarlo directamente con directorios, ya que está hecho para trabajar sólo con archivos. Para borrar directorios podemos usar el otro comando, \texttt{rmdir} que por defecto sólo funcionará si la carpeta está vacía. Para borrar una carpeta que tiene contenido dentro tendremos que usar el argumento \texttt{/s} de la forma siguiente. \begin{verbatim} >rmdir /s carp3 \end{verbatim} \section{Modificando los Atributos de un Archivo} Para poder ver los atributos de los archivos y directorios que hemos creado podemos usar el comando \texttt{attrib [file]}. Este comando, si le añadimos el argumento \texttt{/s} se hará de forma recursiva (como vimos con \texttt{rmdir}) y nos mostrará todos los atributos de todos los archivos en un directorio. Si no especificamos ningún archivo por defecto mostrará todos los atributos de los archivos dentro del directorio actual. También podemos usar este mismo comando para modificar los atributos de un archivo por medio de un \texttt{+x} ó \texttt{-x} donde \texttt{x} es uno de los siguientes: \begin{itemize} \item \texttt{r}: sólo lectura ({\em read-only}) \item \texttt{h}: escondido ({\em hidden}) \item \texttt{s}: sistema ({\em system}) \item \texttt{a}: archivar ({\em archive}) \end{itemize} \section{Conclusión} Usando la línea de comandos, también en Windows, nos proveerá más flexibilidad y poder sin necesidad de navegar un interminable entorno gráfico mal-organizado para encontrar las opciones que buscamos. En vez de esto, podemos simplemente usar el comando \texttt{help } para saber qué opciones tenemos para un comando, y de este modo también podremos finalizar nuestras tareas de una forma más rápida. Por ejemplo, la creación de los archivos al principio hubiera sido una tarea de varios minutos si usásemos un programa como {\em NotePad}, pero en la línea de comandos simplemente corremos un comando por cada archivo. En fin, incluso en Windows usar la línea de comandos es más eficiente que usar el entorno gráfico, lo cual nos dice que seguramente deberían de haberse quedado mejor con MS-DOS. \pagebreak \section{Derechos de Autor y Licencia} Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa \\ Este documento se distribuye bajo los términos y condiciones de la licencia Creative Commons Attribution No Derivatives 4.0 International. \end{document}