Aprende los comandos básicos de Linux (II)
Sigo con estas entradas de los comandos básicos de Linux que deberías conocer para empezar a familiarizarte con el entorno de escritorio. En la primera parte de esta serie de comandos ya te he enseñado los más básicos y poco a poco te voy a ir explicando más comandos aumentando un poco de complejidad.
Si en algún momento echas en falta algún comando o quieres más información sobre cómo hacer determinadas cosas en Linux, escríbeme un comentario o mándame un email, y te contestaré lo antes posible con la respuesta a tus preguntas.
Índice de contenidos
Comando “touch”: Crear fichero o cambiar fecha de modificación
Empiezo explicando este comando que tiene dos funciones muy claras y muy fáciles. La primera es crear un fichero vacío con el nombre que le escribas después.
La otra función es cambiar la fecha de modificación o acceso de un fichero por la fecha y hora actual, cosa que puede resultarte muy útil en las búsquedas de ficheros o listados cuando utilizamos la opción de marca temporal.
TOUCH(1) General Commands Manual TOUCH(1)
NOMBRE
touch - crea un fichero o cambia la fecha de un archivo.
En el ejemplo que te he mostrado en el articulo anterior puedes ver que hay 3 ficheros y 2 directorios. Ya expliqué también cómo crear un directorio vacío, pero aún no te he enseñado a crear un fichero vacío.
jaime@aprendolinux:~/test$ ls -l
total 12308
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:55 directorio2
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 2097152 feb 20 11:19 fichero2
-rw-r--r-- 1 jaime jaime 10485760 feb 20 11:21 fichero3
jaime@aprendolinux:~/test$ touch fichero4
jaime@aprendolinux:~/test$ ls -ltr
total 12308
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:55 directorio2
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 2097152 feb 20 11:19 fichero2
-rw-r--r-- 1 jaime jaime 10485760 feb 20 11:21 fichero3
-rw-r--r-- 1 jaime jaime 0 feb 20 11:37 fichero4
Puedes observar que se ha creado un nuevo fichero, con el nombre que le he asignado a continuación “fichero4”. Ese fichero tiene una fecha de creación posterior a los ficheros que ya existen en el directorio, pero si lanzo el comando con un fichero que ya existe te voy a enseñar qué pasa.
jaime@aprendolinux:~/test$ touch fichero3
jaime@aprendolinux:~/test$ ls -ltr
total 12308
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:55 directorio2
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 2097152 feb 20 11:19 fichero2
-rw-r--r-- 1 jaime jaime 0 feb 20 11:37 fichero4
-rw-r--r-- 1 jaime jaime 10485760 feb 20 11:39 fichero3
Puedes ver que se le ha cambiado la hora del último acceso a fichero y por tanto, se pone en el orden de tiempos según la fecha de modificación de los ficheros.
Comando “cp”: Copia de ficheros y directorios
Este es otro de los comandos que más vas a utilizar cuando te manejes en un consola de Linux, ya que a menudo tendrás que pasar un fichero a otra ruta, modificar alguna configuración y guardar una copia de seguridad, o copiar un directorio completo en otra ruta de tu mismo equipo.
CP(1) User Commands CP(1)
NAME
cp - copy files and directories
Este comando tiene muchas opciones o parámetros que puedes usar dependiendo de qué necesites en cada momento. Esta es la estructura de ficheros y directorios que voy a usar en los ejemplo posteriores.
jaime@aprendolinux:~/test$ ls -ltr
total 12308
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:55 directorio2
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 2097152 feb 20 11:19 fichero2
-rw-r--r-- 1 jaime jaime 10485760 feb 20 11:39 fichero3
Sin parámetros
Cuando utilizas este comando sin parámetros es tan solo para copiar un fichero. El destino donde vas a copiar lo puedes escribir con una ruta relativa o una ruta absoluta.
Puedes elegir copiar el fichero en el mismo directorio donde se encuentra el origen, pero para ello deberás tener cuidado y ponerle un nombre diferente al fichero de origen.
Si lo que haces es una copia con el nombre de destino de otro fichero, no obtendrás un error, pero probablemente pisarás el fichero anterior y no tendrás forma de recuperarlo
jaime@aprendolinux:~/test$ # COPIA CON MISMO NOMBRE
jaime@aprendolinux:~/test$ cp fichero1 fichero1
cp: 'fichero1' y 'fichero1' son el mismo fichero
jaime@aprendolinux:~/test$ # COPIA CON OTRO NOMBRE
jaime@aprendolinux:~/test$ cp fichero1 fichero4
jaime@aprendolinux:~/test$ ls -l
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:55 directorio2
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 2097152 feb 20 11:19 fichero2
-rw-r--r-- 1 jaime jaime 10485760 feb 20 11:39 fichero3
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:53 fichero4
jaime@aprendolinux:~/test$ # COPIA CON NOMBRE DE FICHERO QUE YA EXISTE
jaime@aprendolinux:~/test$ cp fichero1 fichero2
jaime@aprendolinux:~/test$ ls -l
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:55 directorio2
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:55 fichero2
-rw-r--r-- 1 jaime jaime 10485760 feb 20 11:39 fichero3
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:53 fichero4
Aquí puedes ver que en la primera parte de la prueba da un error al querer copiar el fichero en otro con su mismo nombre, para demostrarte que Linux no te permite realizar este comando.
Después he hecho una copia exacta del “fichero1” en el “fichero4”. La única diferencia entre ambos es que la hora de creación del “fichero4” es la hora actual en vez de ser la hora de creación del “fichero1”.
Por ultimo quería enseñaros que si copiáis un fichero en otro que ya existe, vais a pisar el fichero anterior y probablemente sea irrecuperable, por lo que antes de copiar un fichero aseguraros de que no existe otro con el mismo nombre que el fichero de destino.
Opción “-r”: Copia recursiva
Esta opción es la que tenemos que utilizar si lo que queremos copiar es un directorio en otro directorio, con todo su contenido. Si intentas copiar un directorio sin esta opción te devolverá un mensaje de error como te enseñaré a continuación.
jaime@aprendolinux:~/test$ cp directorio1 directorio3
cp: -r not specified; omitting directory 'directorio1'
jaime@aprendolinux:~/test$ cp -r directorio1 directorio3
jaime@aprendolinux:~/test$ ls -l
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:55 directorio2
drwxr-xr-x 2 jaime jaime 4096 feb 20 11:58 directorio3
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:55 fichero2
-rw-r--r-- 1 jaime jaime 10485760 feb 20 11:39 fichero3
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:53 fichero4
En el caso de los directorios, si copias un directorio y pones como destino otro directorio, no pisas el segundo sino que se crea una copia del primero dentro del segundo (primero, segundo, primero, segundo….).
jaime@aprendolinux:~/test$ cp -r directorio1 directorio2
jaime@aprendolinux:~/test$ cd directorio2/
jaime@aprendolinux:~/test/directorio2$ ls
directorio1
jaime@aprendolinux:~/test/directorio2$ cd ..
jaime@aprendolinux:~/test$ ls directorio2/
directorio1
Hay más opciones que utilizarás con el comando “cp” pero por ahora con esto de forma básica te puedes manejar perfectamente.
Genial, si ya has llegado hasta aquí eres un campeón. A veces me enrollo en tonterías y si te pierdes en algún punto ponme un comentario para aclarar más en detalle cualquier duda que tengas.
Comando “mv”: Mover o renombrar un fichero o directorio.
Este comando se suele utilizar sin parametros ya que no le hacen falta. Como ya puedes ver en el propio título, lo usamos para mover un fichero o un directorio a otra ruta y su funcionamiento es muy sencillo.
jaime@aprendolinux:~/test$ ls -l
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:55 fichero2
jaime@aprendolinux:~/test$ mv fichero1 directorio1
jaime@aprendolinux:~/test$ ls -l
drwxr-xr-x 2 jaime jaime 4096 feb 20 10:54 directorio1
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:55 fichero2
jaime@aprendolinux:~/test$ ls -l directorio1/
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
También lo podemos utilizar directamente para cambiarle el nombre a un fichero o a un directorio, dentro de la misma ruta o en otra diferente.
jaime@aprendolinux:~/test$ ls -l directorio1/
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:15 fichero1
jaime@calatrava:~/test$ mv directorio1/fichero1 directorio1/fichero1.txt
jaime@calatrava:~/test$ ls -l directorio1/
-rw-r--r-- 1 jaime jaime 10240 feb 20 11:21 fichero1.txt