Sie sind auf Seite 1von 6

condicion=1 for ((i=1 ; i<=num ; i++))

while [ $condicion -eq 1 ] do


do cp $nombreF$i $nombre
echo 1.Hipotenusa done
echo 2.Directorios y Ficheros echo Se ingresa al directorio
echo Seleccione lo que desea hacer cd $nombre
read opcion ls
case $opcion in echo Se ha copiado correctamente
1) echo
echo Ingrese el cateto 1 ........................................
read catA ..........
echo Ingrese el cateto 2 echo desea volver a intentar?
read catB echo 1.Si
respuesta=$( echo "scale=3; echo 2.No
sqrt($catA*$catA + $catB*$catB)"| bc) read intentar
echo La respuesta es: $respuesta if [ $intentar -eq 1 ]
echo then
........................................ condicion=1
.......... else
echo desea volver a intentar? condicion=0
echo 1.Si fi
echo 2.No ;;
read intentar esac
if [ $intentar -eq 1 ] done
then
condicion=1
else
condicion=0
fi
;;
2)
validar=1
while [ $validar -eq 1 ]
do
echo Ingrese el nombre del directorio
que desea crear
read nombre
if test ! -d $nombre
then
mkdir $nombre
echo El directorio se ha creado
ls
validar=0
else
echo El directorio ya existe
validar=1
fi
done
echo Ingrese el nombre del fichero
read nombreF
echo Ingrese el numero de ficheros que
desee ingresar
read num
for ((i=1 ; i<=num ; i++))
do
touch $nombreF$i
done
echo Se procer a la copia de los
ficheros
general=1 repetir=1
while [ $general -eq 1 ] repetir2=1
do while [ $repetir -eq 1 ]
echo ----------------------------------- do
------------ echo ingrese el nombre del directorio
echo -------------BIENVENIDO A LA read nombre
PRACTICA CON FIND :V -------------- if test -d $nombre
echo 1. ARCHIVOS QUE SEAN MAYORES DE then
500K Y MENORES DE 5000K QUE FUERON echo EL DIRECTORIO YA EXISTE
MODIFICADOS HACE 1 DIA else
echo 2. ARCHIVOS QUE EMPIECEN CON P Y echo EL DIRECTORIO SE CREO CON EXITO
QUE SEAN MENOS DE 10000K Y QUE FUERON mkdir $nombre
MODIFICADOS HACE 5 DIAS ls
echo 3. SALIR echo ingrese el nombre del archivo
read leer read nomar
echo ingrese cuantos archivos desea
case $leer in crear
1) read cant
echo OPCION 1 while [ $repetir2 -le $cant ];do
find . -size +500k -and -size -5000k - touch $nomar$repetir2
mtime -1 cp $nomar$repetir2 $nombre
general=1 ((repetir2++))
;; done
2) ls
echo OPCION 2 fi
find . -name "[pP]*" -size -10000k - echo desea volver a repetir la operacion
mtime -5 echo 1 para si
general=1 echo 2 para no
;; read opcion2
3) if [ $opcion2 -eq 1 ]
general=0 then
;; repetir=1
esac else
done repetir=0
fi
done
gen=1
while [ $gen -eq 1 ] if [ $choo2 -eq 1 ]
do then
echo ---------BIENVENIDO AL PROGRAMA --- op2=1
- else
echo Escoja una Opcion op2=0
echo 1.. Buscar un fichero ingresando el gen=1
nombre del directorio fi
echo 2.. Buscar un fichero segun su done
tamao ;;
echo 3.. EXIT 3)
read op gen=0
;;
case $op in
esac
1) done
ap=1
while [ $ap -eq 1 ]
do
echo a.
echo Ingrese el directorio donde desea
buscar
read direct
echo Ingrese el nombre del archivo
read name2
find /$direct -name $name2 -ls

echo 1.. Buscar Nuevamente??


echo 2.. Regresar al MENU
read choo

if [ $choo -eq 1 ]
then
ap=1
else
ap=0
gen=1

fi
done
;;

2)
op2=1
while [ $op2 -eq 1 ]
do
echo b.
echo ingrese el nombre del archivo que
desea buscar
read nombre
echo ingrese el tamao
read tam
find . -name $nombre -size $tam -ls

echo 1.. Desea Buscar de nuevo??


echo 2.. Regresar al MENU
read choo2
condicion=1 condicion2=0
while [ $condicion -eq 1] fi
do done
echo --INGRESE UNA OPOCION -- ;;
echo 1. RP 2)
echo 2. AP condicion3=1
read opcion while [ $condicion3 -eq 1 ]
case $opcion in do
1) echo ABSOLUTE PERMISSIONS
condicion2=1 echo 1. Opcion 1: permitir solo lectura,
while [ $condicion2 -eq 1 ] escritura y ejecucion a usuarios y
do otros.
echo RELATIVE PERMISIONS echo 2. Opcion 2: permitir solo lectura
echo 1.All USSER -x y escritora para otros usuarios.
echo 2.Escoger u,g,o read opcion2
read rp case $opcion2 in
case $rp in 1)
1) echo Usted escogio opcion 1
echo Escogi denegar permiso de chmod 707 midato
ejecucin a todos los usuarios ls -l midato
chmod +rw-x midato ;;
ls -l midato 2)
;; echo Usted ecogio opcion 2
2) chmod 006 midato
echo INGRESE EL TIPO DE USUARIO u,g,o ls -l midato
read user ;;
if [ $user =="u" ] esac
then echo -----------------------------------
echo Usted denegar a usuario todos los -
permisos echo Desea volver al submenu?
chmod $user-rwx midato echo 1.Si
ls -l midato echo 2.No
elif [ $user == "g" ] echo -----------------------------------
then -
echo Usted decidio otorgar a grupo de read b
usuario solo el permiso de ejecucion if [ $b==1]
chmod g-rw+x midato then
ls -l midato condicion=1
elif [ $user == "o" ] else
then condicion3=0
echo Usted decidi otorgar a otros fi
usuarios solo los permisos de lectura y done;;
escritura esac
chmod $user+rw-x midato echo -----------------------------------
fi -
;; echo Desea volver al menu principal?
esac echo 1.Si
echo ----------------------------------- echo 2.No
- echo -----------------------------------
echo Desea volver al submenu? -
echo 1.Si read c
echo 2.No if [ $c==1]
echo ----------------------------------- then
- condicion=1
read a els
if [ $a==1] condicion=0
then fi
condicion2=1 done
else rep=1
while [ $rep -eq 1 ] FIND
do
La sintaxis es muy simple:
echo bienvenido
echo BUSCAR ARCHIVOS
find [ruta] [expresin_de_bsqueda] [accin]
echo 1.BUSCAR ARCHIVO NOMBRE
echo 2.BUSCAR ARCHIVO1
El siguiente ejemplo busca todos los archivos
echo 3.BUSCAR ARCHIVO QUE EMPIECE EN A Y cuyo nombre sea "reporte" desde la raz:
TERMINE EN 2
echo 4.BUSCAR ARCHIVO 3 find / -name reporte
echo 5.BUSCAR ARCHIVO 4
echo 6.BUSCAR ARCHIVO 3Y 4 find / -iname Reporte (lo mismo, pero sin tomar
en cuenta maysculas y minsculas)
echo 7.salir
read op
case $op in
1)echo ha elegido buscar archivo El uso de expresiones regulares en lo que se
estefania busca es vlido:
find / -name estefania -print ;;
2)echo ha elegido buscar archivo1 find / -name "[0-9]*" (todo lo que empieze co
find / -name archivo1 -print ;; n un dgito)
3)echo ha elegido buscar archivos que find / -name "[Mm]*" (todo lo que empieze co
empiece con a y termine en 2 n un la letra M o m)
find / -name "[a]*[2]" ;; find / -name "[a-m]*.txt" (todo lo que empieze en
4)echo buscar archivo3 tre a y m y termine en ".txt")
find /home -name archivo3 -print ;;
5) echo buscar archivo 4
find /home -name archivo4 -print ;;
6)echo buscar arvhivo 3 y 4 Busca bajo /home todos los archivos que
find /home -name "[a]*" -print ;; pertenezcan al usuario mario
7)echo salir
exit 0 ;; find /home -user mario
*) opcion incorrecta ;;
esac
(lo mismo y que contengan con "enero" como en rep
done orte_enero2011)

find /home -user mario -name "*enero*"

No ests limitado a un solo directorio, indica


ms de uno a buscar antes de las expresiones:

find /etc /usr /var -group admin

(busca en tres directorios todos los archivos o

subdirectorios que pertenezcan al grupo 'admin')

Varias opciones aceptan argumentos numricos,


estos pueden ser indicados de tres maneras
posibles:

+n busca valores mayor que n

-n busca valores menor que n

n busca exactamente el valor n

Buscar todos los archivos que hayan cambiado en


los ltimos 30 minutos:
modificados o cambiados en las ltims dos horas
find / -mmin -30 -type f (120 minutos).

El segundo ejemplo busca todos los archivos que


comiencen con 'reporte' y despus siga un _ o un
los modificados exactamente hace 30 minutos:
- y que NO pertenezcan al usuario sergio.
find / -mmin 30 -type f
El tercer ejemplo busca todos los archivos que
contengan la palabra enero, Enero, ENERO, etc.
(sin importar si lleva maysculas o minsculas) O
cualquier otro archivo que encuentre que
O si deseas buscar en un rango especfico de pertenezca al grupo 'gerentes'.
minutos, con este ejemplo buscaras todos los
directorios que hayan cambiado hace ms de 10 Estas opciones de booleanos tienen su
minutos (+10) y menos de 30 (-30) correspondiente abreviatura:

Una de las actividades bsicas de un


find / -mmin +10 -mmin -30 -type d administrador de sistemas Linux es monitorear el
tamao de archivos, sobre todo de usuarios.
Con find es muy fcil realizar bsquedas por
aunque lo anterior sera mas exacto decir los mod tamao, se indica con la opcin -size, se aplican
ificados hace 11 minutos o ms las mismas reglas para argumentos nmericos (+n -
n n).
y 29 minutos o menos, ya que como se vio anterior
mente +n y -n indican find /var/log -size +15000k -name "*.jpg" (busca
"mayor que" y "menor que", el ejemplo correcto se archivos mayores a 15 megas del tipo jpg)
ra entonces: find $HOME -800c (busca en tu home todos los arc
find / -mmin +9 -mmin -31 -type d hivos menores a 800 bytes (799 realmente))

find ofrece varias opciones de bsqueda por


tiempo, pero las principales son: -amin, -atime, (archivos de tamao comprendidos entre 1mb y 10mb
-cmin, ctime, -mmin y -mtime. "min" es para )
periodos de minutos y "time" para periodos de 24 find . -size +1000k -and -size -10000k
horas.

Los que empiezan con "a" (access) indica el Se admiten cuatro parmetros despus del nmero
tiempo en que fue accedido (leido) por ltima vez en -size:
un archivo. Los que empiezan con "c" (change)
indica el tiempo que cambi por ltima vez el c = bytes
status de un archivo, por ejemplo sus permisos. w = 2 byte words
Los que empiezan con "m" (modify) indica el k = kilobytes
tiempo en que fue modificado (escrito) por ltima b = 512-byte bloques
vez un archivo.

Una consideracin a tener con las bsquedas -


atime, -ctime y -mtime es que el tiempo se mide Para buscar archivos vacios puedes entonces hacer
en periodos de 24 horas y estos son siempre lo siguiente:
truncados, con ejemplos es ms claro:
find . -size 0c
find . -mtime 0 (busca archivos modificados entr
e ahora y hace un dia)
(Aunque la opcin -empty hace lo mismo ms eficie
find . -mtime -1 (busca archivos modificados hac
ntemente)
e menos de un dia)
find . -empty
find . -atime 1 (busca archivos accedidos entre
hace 24 y 48 horas)

find . -ctime +1 (busca archivos cuyo status hay


a cambiado hace ms de 48 horas)

find tambin incluye operadores booleanos que la


hace una herramienta aun ms ltil:

find /home -name 'ventas*' -and -mmin 120

find /home -name 'reporte[_-]*' -not -user sergio

find /home -iname '*enero*' -or -group gerentes

El primer ejemplo busca todos los archivos que


comiencen con 'ventas' Y que hayan sido

Das könnte Ihnen auch gefallen