![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| UNIX for Dummies Preguntas y Respuestas Si no está seguro de que para publicar un UNIX o Linux cuestión, puesto que aquí. Todos los novatos en Linux, UNIX y bienvenida! |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| BASH: Buscar archivos por fecha y desmenuzar los | cbismuth | Programación de scripts de shell y | 2 | 06-13-2005 12:20 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Ayuda para utilizar en lugar de desmenuzar rm
Hola, Tengo este script que funciona muy bien la barra un par de problemas, estoy tratando de emular el comando rm y esto significa que no puede utilizar rm directorio, me inted a mi script para alias rm mv y luego usar para mover los archivos a un carpeta de basura en lugar de eliminar para siempre. El problema: cuando se utiliza para mover un mv directorio en mi carpeta en la que suprime este directorio existe todo listo me sale un mensaje de error, tengo la pizca de todos los archivos y luego quiero usar rmdir para eliminar todos los directorios vacíos en el árbol. Mi guión está aquí Código:
#!/bin/bash
# Ai program to emulate the "rm" command in UNIX.
# Created by Michael Kelly
# Last revison 12/07/2006
# INITIALIZE VARIABLES
NO_ARGS=0
FLAG_R=""
FLAG_F_I=""
FLAG_V=""
TRASH=$HOME/deleted
# FUNCTIONS
function errors() {
if [ "$#" -eq "$NO_ARGS" ] ; then
echo "rm: too few arguments"
echo "Try \`rm --help' for more information."
exit 0
elif [[ ! -f "$1" && ! -d "$1" ]] ; then
echo "rm: cannot remove $ARG : no such file or directory"
exit 0
elif [[ -d $ARG && "$FLAG_R" = "" ]] ; then
echo "rm: \`$ARG' is a directory"
exit 0
else
checkExisting $1
fi
}
function verbose () {
if [ "$FLAG_V" = "v" ] ; then
echo "removing \`$1'"
fi
}
function interactive () {
echo -n "rm: remove $1 ?"
read A
if [[ "$A" = [Yy] ]] ; then
remove $1
else
exit 0
fi
}
function writePro () {
if ! [ -w "$1" ] ; then
echo -n "rm: remove write-protected file \`$*'?"
read A
if [[ "$A" = [Yy] ]] ; then
delete $1
fi
else
delete $1
fi
}
function checkExisting ()
{
if [ -d "$TRASH/$1" ] || [ -f "$TRASH/$1" ]; then
shred -fp $TRASH/$1 2>/dev/null
rmdir $TRASH/$1 2>dev/null
writePro $1
else
writePro $1
fi
}
function force () {
mv -f $1 $TRASH 2>/dev/null
verbose $1
}
function remove () {
mv $1 $TRASH 2>/dev/null
verbose $1
}
function delete() {
if [ "$FLAG_F_I" = "-i" ] && [ -w "$@" ] ; then
interactive $1
elif [ "$FLAG_F_I" = "-f" ] ; then
force $1
elif [ "$FLAG_R" = "-R" ] ; then
recursive $1
else
remove $1
fi
}
# Getops
while getopts :rRfvi o
do case $o in
r|R) FLAG_R=-R
;;
f) FLAG_F_I=-f
;;
v) FLAG_V=-v
;;
i) FLAG_F_I=-i
;;
*) echo "rm: invalid option -$1"
echo "try \`rm --help' for more information"
exit 0
esac
done
shift `expr $OPTIND - 1`
if ! [ -d "$HOME/deleted" ] ; then
mkdir $HOME/delete
else
for ARG in $*
do
errors $ARG
done
fi
if [ $# -eq $NO_ARGS ] ; then
errors
fi
Me han puesto de relieve el problema de la función en negrita, quiero desmenuzar recrusively archivos y luego usar rmdir del mismo modo para la directorios vacíos. Alguien recomendó a este comando: Código:
find -type f -exec shred -u '{}' \;
que pedazos recursivley pero ¿cómo puedo especificar qué punto de comenzar shreding? cuando utiliza este aniquilado antes de que todos los archivos en mi directorio home en adelante. Una vez que tengo que ordenada quiero utilizar un comando similar, pero con la sustitución de rmdir trizas, ¿alguien puede aconsejarme para que fuera? Recuerdos Jack |
|
||||
|
¡Salud!!
Entonces, ¿cómo usar rmdir de forma similar para eliminar los directorios vacíos? Jack |
|
||||
|
Cita:
También, estoy de nuevo tipo en Unix ¿podría explicar este comando un poco mejor, alguien lo recomendó y yo realmente no la entiendo-exec y '()' \ Gracias de nuevo Jack |
|
||||
|
Me encontré en mi guión y argumento que dice que faltan por ejecutar
|
|
||||
|
Hola, gracias de nuevo.
Sigo teniendo el error sin embargo, incluso con un espacio, es mi código de la siguiente manera: encontrar BASURA $ / $ 1-type f-exec pizca-fu '()' \ 2> / dev / null cualquier idea por qué? |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|