En este post verás:
- Comandos para desplazarte a través de los diferentes directorios
- Comandos para listar el contenido de un directorio, buscar archivos, etc.
- Comandos para crear, borrar, copiar y mover archivos y directorios
- Más información
COMANDOS PARA DESPLAZARTE A TRAVÉS DE LOS DIFERENTES DIRECTORIOS
Empezando por el primero grupo, aquí verás todo lo necesario para aprender situarte en un punto de partida ya desplazarte a través de los diferentes directorios. Si tienes curiosidad, en este post tienes explicada la estructura de directorios de Linux al detalle. Y ya sin más, empecemos por el más sencillo de todos pero no por ello menos importante…
#PWD
El comando pwd te indica la ruta completa del directorio de trabajo en el que se encuentra tu usuario. Su función es meramente informativa, peor muy útil en ciertas ocasiones.
$ pwd
Esta es la única sintaxis que realmente necesitas conocer de este comando. Como explico, te indica la ruta del directorio de trabajo en el que te encuentras logueado en la terminal. Cualquier comando para manejar archivos y carpetas, se aplicará en ese directorio.
#CD
El comando cd te permite cambiar de directorio de trabajo. Generalmente requiere que le indiques el nombre del directorio en el que deseas moverte. Acepta rutas absolutas y relativas. A continuación tienes algunos ejemplos de su uso.
$ cd /home/usuario/Documentos
Este comando te llevará al directorio Documentos dentro de la carpeta personal del usuariousuario1. En este caso he utilizado una ruta absoluta, empezando por el directorio raíz /, e indicando el camino completo hasta situarme a Documentos
$ cd
Esta sentencia la puedes utilizar siempre que quieras volver a situarte al directorio principal de usuario, que en este caso seria en /home/usuario1. Muy interesante siempre que queramos volver al punto de partida.
$ cd Documentos
Igual que en el primer ejemplo, con esta sentencia te situarás dentro del directorioDocumentos, que debe estar dentro del directorio de trabajo actual. La diferencia es que en este caso, aprovechando que estoy dentro del directorio principal de usuario, he utilizando una ruta relativa sin necesidad de indicar el camino completo.
$ cd ..
Esta sentencia la puedes utilizar para saltar un directorio hacía atrás respecto del que te encuentres. De este modo, si te encuentras dentro del directorio/home/usuario1/Documentos, saltarás un nivel hacía arriba hasta situarte en/home/usuario1.
$ cd ../..
Esta opción es similar a la anterior, pero ahora te permitirá saltar de golpe dos directorios hacia atrás. Por tanto, si estabas en /home/usuario1/Documentos, ahora saltarás a /home.
Hasta aquí, tienes algunos usos simples para moverte a través del sistema de archivos de Linux. A continuación, y teniendo claro lo anterior, podemos pasar a aprender a listar archivos y directorios.
COMANDOS PARA LISTAR EL CONTENIDO DE UN DIRECTORIO, BUSCAR ARCHIVOS, ETC.
Visto ya como moverte a través de carpetas, que mejor que continuar como poder listar el contenido de un directorio, localizar archivos concretos por su nombre o su extensión, etc.
#LS
Con el comando ls podrás listar los diferentes archivos y directorios de la carpeta de trabajo en la que te encuentres. El comando acepta multitud de opciones, algunas de las cuales te mostraré a continuación.
$ ls
Este es el uso más simple del comando ls. Si no le indicas ninguna opción, te enumerará todos los archivos y directorios que se encuentran en la carpeta de trabajo actual, sin tener en cuenta archivos ocultos.
$ ls -a
Con esta opción, el comando te mostrará, en forma de lista, todos el contenido que se encuentre dentro del directorio de trabajo, incluyendo, además, archivos y carpetas ocultos.
$ ls -l
Esta opción es similar al primer caso, pero muestra el contenido en forma de lista e incluye información referente a cada elemento. Se usa muchísimo y es especialmente útil a la hora de conocer los permisos de lectura, escritura y ejecución de cada archivo.
Estas son sólo algunas de las muchísimas posibilidades de las que disponemos para nombrar o listar el contenido de un directorio, desde la terminal de Linux. Existen muchas opciones más, las cuales puedes explorar en todo momento haciendo uso del comando man ls.
#FIND
El comando find es muy similar en su función básica a ls, ya que de entrada sirve para listar todo el contenido de un directorio. La diferencia es que, aplicando filtros, te puede servir para buscar elementos de forma más precisa.
$ find
La sentencia más básica te listará todo el contenido del directorio de trabajo actual de forma recursiva. La diferencia respecto a ls es justamente que find no se limitara a mostrar los archivos y directorios de primer nivel, sino que también te mostrará el contenido de estos, y así recursivamente hasta recorrer todos los niveles hacía abajo.
$ find ./Documentos
Con esta opción, find te listará todos el contenido del directorio Documentos (dentro del directorio de trabajo actual) también de forma recursiva, recorriendo todos los niveles hacía abajo.
$ find ./Documentos -name archivo.txt
Si quieres empezar a establecer filtros por nombre, puedes añadir el parámetro -name. En este ejemplo, estamos intentando localizar un archivo concreto dentro de Documentos que su nombre corresponda a archivo.txt.
$ find ./Documentos -name *.pdf
Incluso puedes hacer filtros más concretos gracias al uso de comodines. En el caso de arriba, por ejemplo, estamos buscando en la carpeta Documentos todos los archivos que con la extensión .pdf, al igual que puedes hacerlo con cualquier otro tipo de extensión.
#LOCATE
El comando locate es una alternativa útil a find la hora de localizar archivos o directorios que no recuerdas donde tienes. Aquí tiene algunos ejemplos que te pueden ser de gran utilidad:
$ locate archivo1.txt
En este caso tienes un claro ejemplo de como realizar una búsqueda simple del archivoarchivo1.txt directamente por su nombre. Es útil solo si sabes el nombre exacto del elemento que estás buscando.
CREAR, BORRAR, COPIAR Y MOVER ARCHIVOS Y DIRECTORIOS
En esta parte conocerás todos los comandos necesarios a la hora de crear un directorio en Linux desde la Terminal, copiar un archivo y pegarlo en otra ubicación, moverlo de una ubicación en otra, eliminarlo, etc. Esta es probablemente la parte de este post de la que podrás sacarle mas jugo al uso de la consola, así que vayamos allá;)
#MKDIR
El comando mkdir te permitirá crear un directorio con el nombre y la ruta que especifiques. Si no le indicas ninguna ruta, por defecto, te creará la carpeta dentro del directorio de trabajo en el que te encuentres. A continuación tienes algunos ejemplos sencillos.
$ mkdir /home/usuario1/directorio1
En este caso, el comando te creará el directorio de nombre directorio1, en la ruta que le hayas especificado, en este caso dentro de la carpeta principal de usuario.
$ mkdir directorio2
Con esta sintaxis, el comando te creará el directorio de nombre directorio2 dentro de la carpeta de trabajo en la que te encuentres (recuerda utilizar pwd para saber donde estás).
Estos son las dos principales maneras de crear carpetas en Linux desde la terminal. Asimismo, si quieres profundizar más en el uso de este comando, puedas explorar otras muchas opciones a través del comando man mkdir.
#RMDIR
El comando rmdir te permite eliminar el directorio que le especifiques. Para poder utilizar este comando, el directorio a borrar debe estar vacío. A continuación tienes un par de ejemplos.
$ rmdir /home/usuario1/directorio1
En este caso, el comando borrará el directorio de nombre directorio1, que se encuentra en la ruta especificada, en este caso dentro de la carpeta de usuario.
$ rmdir directorio2
En este otro ejemplo, el comando creará el directorio de nombre directorio2, el cual debe encontrarse dentro de la carpeta en el que te encuentres. De lo contrario, indicará que el directorio no existe.
#RM
El comando rm te permite eliminar archivos sueltos y directorios que no se encuentren vacíos. A continuación tienes algunos de los usos principales del comando.
$ rm /home/usuario1/archivo1.txt
En este caso, el comando te borrará el archivo de texto archivo1.txt, que se encuentra en la ruta especificada, para este caso dentro de la carpeta de usuario.
$ rm -r /home/usuario1/directorio1
Con esta opción, el comando te borrará el directorio directorio1 de forma recursiva, esto es, incluyendo todos los archivos y subdirectorios que se encuentren dentro de él (pidiéndote, eso si, confirmación para cada archivo).
rm -rf /home/usuario1/directorio1
Si te quieres saltar el paso de tener que confirmar archivo por archivo que realmente deseas borrarlo, con este comando borrarás todo el contenido del directorio sin advertencias.
#CP
Usando el comando cp, seras capaz de copiar archivos y directorios, así como ubicarlos en otras rutas. A continuación, tienes un par de ejemplos de como se puede utilizar.
$ cp archivo1.txt archivo2.txt
Este es posiblemente el uso más simple del comando. Con esto crearás una copia del archivo archivo1.txt la cual se guardará con el nombre archivo2.txt. En este caso, el archivo de partida debe encontrarse dentro del directorio de trabajo en el que estés.
$ cp /home/usuario1/archivo1.txt /tmp/archivo2.txt
Alternativamente, puedes especificar la ruta en la que se encuentra el archivo de partida, de nombre archivo1.txt, y la ruta del directorio dentro del cual quieres que se guarde la copia, en este caso dentro del directorio tmp.
Como en todos los casos, puedes explorar muchas más opciones tecleando man cp en la consola.
#MV
El comando mv te servirá para mover archivos desde la consola. Sería lo equivalente a arrastrar un archivo desde una ubicación a otra. La sintaxis es muy sencilla, solamente debes especificar la ubicación de inicio, incluyendo el nombre del archivo, y la ubicación de destino. También puedes modificar el nombre del archivo en su ubicación de destino.
mv /home/usuario1/Descargas/archivo1.txt /home/usuario1/Documentos/archivo1.txt
En este ejemplo, estamos moviendo el archivo de nombre archivo1.txt desde la carpetaDescargas hacía la carpeta Documentos. Para ello hemos utilizado rutas absolutas.
mv Descargas/archivo1.txt Documentos/archivo1.txt
En este otro ejemplo he hecho exactamente lo mismo pero utilizando una ruta relativa, suponiendo que nos encontramos en la carpeta de usuario dentro de la Home.