No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Operaciones Archivos

33/43
Recursos

Aportes 17

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Asombrado del poder de los Scripts

Los archivos .txt en el directorio backupScripts/ no fueron eliminados, para removerlos hay que agregar la siguiente instrucción (después de mover el directorio):
cd $HOME/backupScripts/

# ! /bin/bash
# Programa para operaciones de un archivo
# Author Diego Beltran histagram @diegodevelops

echo "Operaciones con archivos"
mkdir -m 755 backupScripts

echo -e "\nCopiar los scripts del directorio actual al nuevo"

cp *.* backupScripts/
ls -la backupScripts/

echo -e "\n Mover directoriode backupscripts a otra ubicacion: $HOME"
mv backupScripts $HOME

echo -e "\n Eliminar archivos txt"
rm *.txt

He trabajado con Linux la mayor parte de mi vida, hasta ahora me motivé a un curso formal y me doy cuenta de todo lo que me había perdido, va muy bien el curso

#Copiar archivos del directorio actual a carpeta backupScript

cp ./* backupScripts

mv backupScripts $HOME

# Eliminar archivos .txt de la carpeta backupScripts

rm $HOME/backupScripts/*.txt

Script escrito y probado en Ubuntu 18.04
5 destination_file="backup_test/"
6
7 echo "File management"
8 echo "---------------"
9 echo -e ""
10
11 #Create a folder
12 echo "Creating the folder ‘backup_test’…"
13 mkdir -m 666 $destination_file #-m. Mode, just like chmod
14 #permisos solo de lectura y escritura
15 echo -e ""
16
17 #Copy a folder’s content to a new destination one (the new
18 #folder created) and print all the files in it
19 echo "Copying all the files of the actual folder to the new one’s created. The print all the file copied"
20 cp -r ./* $destination_file #if the folder exists in the destinati on path, the folder is created in the “.” path
21 echo -e ""
22 echo "Content of $destination_file:"
23 ls -lha $destination_file
24 echo -e ""
25
26 #Move the backup_test folder to the $HOME path
27 echo "Moving the folder $destination_file to ~ …"
28 mv $destination_file $HOME
29 echo -e ""
30
31 #Eliminate all the *.txt files of the folder $destination_file
32 echo "Eliminate all the *.txt files of the folder $destination_fil e"
33 rm -rf *.txt

Así queda.

# ! /bin/bash
# Programa para ejemplificar las operaciones de un archivo
# Autor: Jose Suarez

echo "Operaciones de un archivo"
mkdir -m 755 backupScripts

echo -e "\nCopiar los scripts del directorio actual al nuevo directorio backupScripts"
cp *.* backupScripts/
ls -la backupScripts/

echo -e "\nMover el directorio backupScripts a otra ubicación: $HOME"
mv backupScripts $HOME


echo -e "\nEliminar los archivos .txt"
rm *.txt

Muy bien. Muy practico

gracias

En \*\*Bash\*\*, hay una variedad de comandos y herramientas que puedes utilizar para realizar \*\*operaciones con archivos\*\*. Estas operaciones incluyen crear, copiar, mover, renombrar, eliminar, buscar, cambiar permisos, entre otras. A continuación, te presento los comandos más comunes y útiles para trabajar con archivos en Bash. \### Operaciones Básicas con Archivos 1\. \*\*Crear archivos\*\*: \- \*\*`touch`\*\*: Crea un archivo vacío o actualiza la fecha de modificación de un archivo existente. ```bash touch archivo.txt ``` \- \*\*Redirección\*\*: Puedes crear un archivo con contenido específico utilizando redirecciones (`>`). ```bash echo "Hola Mundo" > archivo.txt ``` 2\. \*\*Copiar archivos\*\*: \- \*\*`cp`\*\*: Copia un archivo de una ubicación a otra. \- Ejemplo: Copiar `archivo.txt` a una nueva ubicación `copia.txt`. ```bash cp archivo.txt copia.txt ``` \- \*\*Copiar directorios\*\*: Para copiar directorios completos, usa la opción `-r` (recursiva). ```bash cp -r directorio\_origen directorio\_destino ``` 3\. \*\*Mover o renombrar archivos\*\*: \- \*\*`mv`\*\*: Mueve o renombra archivos o directorios. \- Mover `archivo.txt` a otro directorio: ```bash mv archivo.txt /ruta/nueva/ ``` \- Renombrar `archivo.txt` a `nuevo\_nombre.txt`: ```bash mv archivo.txt nuevo\_nombre.txt ``` 4\. \*\*Eliminar archivos\*\*: \- \*\*`rm`\*\*: Elimina archivos. \- Ejemplo: Eliminar un archivo llamado `archivo.txt`. ```bash rm archivo.txt ``` \- \*\*Eliminar directorios\*\*: Usa la opción `-r` para eliminar directorios y su contenido de manera recursiva. ```bash rm -r directorio/ ``` \- \*\*Eliminar archivos forzadamente\*\*: Usa `-f` para forzar la eliminación sin pedir confirmación. ```bash rm -rf directorio/ ``` 5\. \*\*Ver contenido de archivos\*\*: \- \*\*`cat`\*\*: Muestra el contenido completo de un archivo. ```bash cat archivo.txt ``` \- \*\*`less`/`more`\*\*: Muestra archivos grandes paginados, permitiendo desplazarse por el archivo. ```bash less archivo.txt ``` 6\. \*\*Buscar archivos\*\*: \- \*\*`find`\*\*: Busca archivos y directorios en el sistema de archivos basado en diferentes criterios. \- Ejemplo: Buscar archivos llamados `archivo.txt` en el directorio actual y sus subdirectorios. ```bash find . -name "archivo.txt" ``` \- \*\*`locate`\*\*: Encuentra archivos por nombre usando una base de datos indexada (requiere `updatedb` para actualizar la base de datos de archivos). ```bash locate archivo.txt ``` 7\. \*\*Comparar archivos\*\*: \- \*\*`diff`\*\*: Compara dos archivos línea por línea. \- Ejemplo: Comparar `archivo1.txt` y `archivo2.txt`. ```bash diff archivo1.txt archivo2.txt ``` \- \*\*`cmp`\*\*: Compara dos archivos byte por byte. ```bash cmp archivo1.txt archivo2.txt ``` 8\. \*\*Concatenar archivos\*\*: \- \*\*`cat`\*\*: Concatenar varios archivos en uno solo. \- Ejemplo: Combinar `archivo1.txt` y `archivo2.txt` en uno llamado `combinado.txt`. ```bash cat archivo1.txt archivo2.txt > combinado.txt ``` 9\. \*\*Cambiar permisos de archivos\*\*: \- \*\*`chmod`\*\*: Cambia los permisos de un archivo o directorio. \- Ejemplo: Hacer un archivo ejecutable: ```bash chmod +x script.sh ``` \- Cambiar los permisos de lectura/escritura/ejecución usando notación octal: ```bash chmod 755 archivo.txt ``` 10\. \*\*Cambiar propietario de archivos\*\*: \- \*\*`chown`\*\*: Cambia el propietario y grupo de un archivo o directorio. \- Ejemplo: Cambiar el propietario de `archivo.txt` a `usuario`: ```bash sudo chown usuario archivo.txt ``` 11\. \*\*Mostrar información detallada de archivos\*\*: \- \*\*`stat`\*\*: Muestra información detallada de un archivo, como permisos, tamaño, fechas de acceso/modificación, etc. ```bash stat archivo.txt ``` \- \*\*`file`\*\*: Determina el tipo de un archivo (por ejemplo, si es texto, binario, imagen, etc.). ```bash file archivo.txt ``` 12\. \*\*Archivar y comprimir archivos\*\*: \- \*\*`tar`\*\*: Se utiliza para archivar varios archivos en uno solo. \- Ejemplo: Crear un archivo `tar` llamado `archivo.tar` de un directorio. ```bash tar -cvf archivo.tar directorio/ ``` \- \*\*`gzip`\*\*: Comprime archivos con formato `.gz`. \- Ejemplo: Comprimir `archivo.txt` a `archivo.txt.gz`. ```bash gzip archivo.txt ``` \- \*\*`zip`\*\*: Comprime archivos y directorios en un archivo `.zip`. \- Ejemplo: Comprimir varios archivos en un archivo `archivo.zip`. ```bash zip archivo.zip archivo1.txt archivo2.txt ``` 13\. \*\*Monitorear cambios en archivos en tiempo real\*\*: \- \*\*`tail -f`\*\*: Ver las últimas líneas de un archivo, actualizando en tiempo real (útil para monitorear logs). ```bash tail -f archivo.log ``` \### Ejemplo de un Script de Bash con Operaciones Básicas de Archivos: Aquí tienes un pequeño script que crea un archivo, escribe en él, lo muestra, lo copia y luego lo elimina: ```bash \#!/bin/bash \# Crear un archivo y escribir en él echo "Creando archivo.txt y escribiendo en él..." echo "Este es un archivo de ejemplo." > archivo.txt \# Mostrar el contenido del archivo echo "Mostrando el contenido de archivo.txt:" cat archivo.txt \# Copiar el archivo echo "Copiando archivo.txt a copia\_archivo.txt" cp archivo.txt copia\_archivo.txt \# Mostrar el contenido de la copia echo "Mostrando el contenido de copia\_archivo.txt:" cat copia\_archivo.txt \# Eliminar el archivo original echo "Eliminando archivo.txt..." rm archivo.txt \# Verificar si archivo.txt fue eliminado if \[\[ ! -f archivo.txt ]]; then echo "archivo.txt eliminado correctamente." else echo "Error al eliminar archivo.txt." fi ``` \### Resumen: \- \*\*`cp`\*\*: Copiar archivos. \- \*\*`mv`\*\*: Mover o renombrar archivos. \- \*\*`rm`\*\*: Eliminar archivos. \- \*\*`chmod`\*\* y \*\*`chown`\*\*: Cambiar permisos y propietarios. \- \*\*`find`\*\*: Buscar archivos. \- \*\*`tar`\*\*, \*\*`gzip`\*\*, \*\*`zip`\*\*: Archivar y comprimir archivos.
Sabes que el curso se esta poniendo serio por que ahora los archivos se nombran en ingles!

Como aporte el profesor en anteriores scripts dice que el permiso 755 es de lectura y escritura pero en realidad no es así.
Ese permiso en concreto es todos los permisos para usuario y lectura y ejecución para el resto.

Los número van en este orden: Usuario / Grupo / Otros

Cada número es la suma de los permisos
Lectura = 4
Escritura = 2
Ejecución = 1

Siendo 7 todos los permisos

Hice esta versión![](https://static.platzi.com/media/user_upload/image-5519fa05-fec6-498a-a8fd-4ba4c97521d2.jpg):
![](https://static.platzi.com/media/user_upload/image-3c78b767-0966-4d9a-b14f-4d8f3ec97eb4.jpg)
![](https://static.platzi.com/media/user_upload/image-3134f8f7-0507-48db-b97e-c7c2a6f34455.jpg)
#!/bin/bash

# Copy files
mkdir -m 755 backup_scripts
cp *.* backup_scripts/
ls -la backup_scripts

# Move files
mv backup_scripts $HOME

# Remove files
rm *.txt