Script que muestra el tamaño total en bytes de todos los archivos que contiene el directorio actual, excluyendo directorios, subdirectorios y archivos ocultos. SÓLO ARCHIVOS!!
Script para mostrar en forma de árbol los directorios contenidos en un directorio dado utilizando una función recursiva, el directorio se puede pasar como parametro en la ejecución :
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/bash
# Script para mostrar en forma de arbol los directorios contenidos en un directorio
Este comando buscará todos los ficheros TXT en la carpeta ‘/home/trabajo’ y sus subcarpetas y en cada uno sustituirá todas las ocurrencias de la cadena ‘cientos’ con la cadena ‘miles’.
El comando xargs nos permite construir y ejecutar comandos desde la entrada estándar, el uso de xargs es bien simple, y lo explicare con ejemplos…
Si por ejemplo quisiéramos buscar todos los ficheros .conf del directorio /etc que contengan la palabra root dentro de su contenido… podemos utilizar el comando find (Para buscar todos los ficheros de /etc que terminen en .conf), y luego con ese resultado utilizamos xarg en conjunto con grep (xarg lo utilizaremos para que ejecute el filtro grep con el resultado como entrada).
El comando seria el siguiente:
Shell
1
find/etc-iname"*.conf"|xargsgrep"root"
Y veremos como resultado todos los ficheros con root en su contenido y la linea con la palabra a su lado.
En este ejemplo no hemos utilizado xargs con ninguna opcion, y para el siguiente ejemplo tampoco utilizaremos ninguna opcion para poder indentificar algunas diferencias importantes, por ejemplo si estamos en un directorio y queremos borrar todo su contenido (Normalmente podemos hacer esto con rm -rf *, pero es un ejemplo para que aprendamos como funciona xargs), hariamos lo siguiente:
Shell
1
ls|xargsrm-rf
Esto nos borraria todos los archivos de el directorio en el que estamos, y aunque no lo veamos el comando que se genero, poniendo de ejemplo que hay 5 archivos es el siguiente:
Con la opcion -n podemos especificar el numero de argumentos en una linea, por ejemplo:
Shell
1
ls|xargs-n1 rm-rf
Mostraria:
Shell
1
2
3
4
5
rm-rf archivo1
rm-rf archivo2
rm-rf archivo3
rm-rf archivo4
rm-rf archivo5
Si ponemos -n2, mostraria:
Shell
1
2
3
rm-rf archivo1 archivo2
rm-rf archivo3 archivo4
...
Ahora que sabemos como funciona el comando XARGS, podremos construir una serie de comandos, por ejemplo queremos que todos los ficheros del directorio /etc que terminen con .conf sean movidos a un directorio especifico (En este ejemplo /backup), utilizaremos xargs con la opcion -I, de la siguiente manera:
Shell
1
find/etc-iname"*.conf"|xargs-IARG cpARG/backup
Donde lo que escribamos delante de el primer ARG sera el primer argumento y lo que escribamos delante de el segundo ARG sera el tercer argumento, y el resultado del find seria el segundo, el comando anterior estaria haciendo lo siguiente:
Shell
1
2
3
4
5
6
7
8
9
cp/etc/prueba.conf/backup
cp/etc/prueba2.conf/backup
cp/etc/prueba3.conf/backup
cp/etc/prueba4.conf/backup
cp/etc/prueba5.conf/backup
cp/etc/prueba6.conf/backup
cp/etc/prueba7.conf/backup
...
De la misma forma se podria construir con el comando AWK de la siguiente forma :
¿Te ha servido este sitio alguna vez? Cada script, cada línea de ayuda aquí es fruto de horas de trabajo y pasión por compartir. Si alguna vez resolviste un problema gracias a esta página, considera hacer una donación. Tu aporte —por pequeño que sea— mantiene vivo este proyecto y me impulsa a seguir creando.