Borrar elementos de una ruta

Imagen de Orton
0 puntos

Hola a todos, tengo la siguiente duda:

 Dada una ruta

/usuario/escritorio/scripts/carpeta

como puedo hacer para borrar a partir de un N-elemento.

Por ejemplo, si N = 2, implicaria borrar escritorio, scripts y carpeta 

Como podria hacerse??

Gracias 

Imagen de birdlives
+1
0
-1

salud:

Para eliminar  tienes dos opciones: boton derecho del raton y a la papelera, selecionar con el raton el elemneto a eliminar y tecla de suprimir o por consol: dependiendo de los derechos del archivo o carpeta en cuestion utilizaremos sudo si tiene derechos de root el comando seria como sigue: sudo rm y a continuacion la ruta exacta del elemento a eliminar.

 

Omnia sunt communia 

+1
0
-1
Imagen de Orton
+1
0
-1

En realidad a lo que me referia es a como se implementaria ese borrado en bash;;

Gracias

+1
0
-1
Imagen de evilshadow
+1
0
-1

Mejor el siguiente post.

+1
0
-1

____________________________________________________

Mi blog: http://www.krispytech.com/

Imagen de evilshadow
+1
0
-1

A mí se me ocurre...

No lo he probado. La forma de ejecutarlo es la siguiente:

sh eliminar.sh directorio número

directorio= $HOME/petayoda (por ejemplo)

número= 5 (por ejemplo. Borrará a partir de esa posición)

 

#### COMIENZO SCRIPT ####

if test $# -lt 2

then

        echo -e "Error: Argumentos insuficientes\\n"

        exit 1

fi

auxiliar=0

for i in $1/*

do

    if test auxiliar -gt $2

    then

            if test -d $i

            then

                    rm -r $i 2> /dev/null

                    if test $? -ne 0

                    then

                           echo -e "Error: Eliminar directorio $i\\n"

                     fi

             else

                    rm $i 2> /dev/null

                    if test $? -ne 0

                    then

                            echo -e "Error: Eliminar fichero $i\\n"

                    fi

               fi

    fi

    auxiliar=`expr $auxiliar + 1`

done

#### FIN ####

+1
0
-1

____________________________________________________

Mi blog: http://www.krispytech.com/

Imagen de joseluis
+1
0
-1

Echa un vistazo a este script por si te sirve:

#!/bin/bash

if [ $# != 2 ]
then
   echo "Formato: $0 directorio nivel"
   exit 1
fi

directorio=$1
nivel=$2

tdir=(`echo $1 | sed "s/ /#ESPACIO#/g" | sed "s/\// /g"`)

for ((i=0; i < $(($nivel-1)); i++))
do
   resultado="${resultado}/"`echo ${tdir[$i]} | sed "s/#ESPACIO#/ /g"`
done
echo $resultado

Lo que hace lo anterior es guardar en la variable resultado la ruta que queda al eliminar los N-elementos.

Si lo que quisieras es eliminar realmente los directorios que sobran (es decir usar el comando rm para borrar los directorios) te podría servir un script parecido al anterior:

#!/bin/bash

if [ $# != 2 ]
then
   echo "Formato: $0 directorio nivel"
   exit 1
fi

directorio=$1
nivel=$2

tdir=(`echo $1 | sed "s/ /#ESPACIO#/g" | sed "s/\// /g"`)

for ((i=0; i < $nivel ; i++))
do
   resultado="${resultado}/"`echo ${tdir[$i]} | sed "s/#ESPACIO#/ /g"`
done
rm -rf $resultado

Lectura obligada:
+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado