The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > UNIX voor Dummies Questions & Answers
.
google unix.com



UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!!

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Bash: Bestanden zoeken op datum en het shredden hen cbismuth Programmeren en Shell Scripting 2 06-13-2005 12:20

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-17-2006
jack1981 jack1981 is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 42
Helpen in plaats van met behulp van het shredden rm

Hoi,

Ik heb dit script dat loopt vrij goed bar een paar problemen, ik probeer te emuleren het rm commando en dit betekent dat ik niet kan gebruiken rm map, ik inted alias aan mijn script tot rm en gebruik vervolgens mv te verplaatsen van bestanden naar een Trash map niet verwijderen.

Het probleem: wanneer ik mv om een map in mijn verwijderde map waar deze map al klaar is krijg ik een foutmelding, ik ben van plan voor het shredden alle bestanden en dan wil ik gebruik rmdir om alle lege mappen in de verkenner.

Mijn script is hier

Code:

#!/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
Ik heb gewezen op het probleem functie in vet, ik wil shredden bestanden recrusively en gebruik vervolgens rmdir dezelfde manier voor de lege mappen.

Iemand aanbevolen dit commando uit:

Code:
find -type f -exec shred -u '{}' \;
die flarden recursivley maar hoe kan ik aangeven welk punt te starten shreding uit? toen ik dit voor hem weggevaagd elk bestand in mijn home-directory vanaf.

Zodra ik dat gesorteerd Ik wil gebruik maken van een soortgelijke opdracht, maar met vervanging rmdir shredden, kan iemand mij adviseren weg naar het?

Groeten

Jack
  #2 (permalink)  
Old 07-17-2006
Hitori's Avatar
Hitori Hitori is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jun 2006
Posts: 360
waarom niet gewoon

vinden $ TRASH / $ 1-type f-exec shredden-u '()' \;
  #3 (permalink)  
Old 07-17-2006
jack1981 jack1981 is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 42
Sante!

Dus hoe zou ik gebruik rmdir op een soortgelijke manier om de lege mappen?

Jack
  #4 (permalink)  
Old 07-17-2006
jack1981 jack1981 is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 42
Citaat:
Oorspronkelijk geplaatst door Hitori
waarom niet gewoon

vinden $ TRASH / $ 1-type f-exec shredden-u '()' \;

Ook ben ik soort van nieuwe op Unix kunt u uitleggen dit commando een beetje beter, iemand anders aanbevolen en I dont echt begrijpen de exec en '()' \

Nogmaals bedankt

Jack
  #5 (permalink)  
Old 07-17-2006
jack1981 jack1981 is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 42
Ik heb het in mijn script en het zegt ontbrekende argument voor-exec
  #6 (permalink)  
Old 07-17-2006
Hitori's Avatar
Hitori Hitori is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jun 2006
Posts: 360
Citaat:
Oorspronkelijk geplaatst door jack1981
Ik heb het in mijn script en het zegt ontbrekende argument voor-exec
Vergeet niet <spatie>:

vinden $ TRASH / $ 1-type f-exec shredden-u '()'<spatie>\;

Dat betekent zoeken (recursief) in de directory $ TRASH / $ 1 voor bestanden (-type f) en uitvoeren voor elk bestand dat is gevonden commando shredden-u '()' waar macro () wordt vervangen door de naam van het bestand

U kunt gebruik maken van het type D te zoeken voor directories

Check out vinden (1) (man 1 vinden)
  #7 (permalink)  
Old 07-17-2006
jack1981 jack1981 is offline
Geregistreerde gebruiker
  
 

Join Date: Jul 2006
Posts: 42
Hoi, nogmaals bedankt.

Ik krijg nog steeds de fout echter, zelfs met een spatie, mijn code is als volgt:

vinden $ TRASH / $ 1-type f-exec shredden-fu '()' \ 2> / dev / null

enig idee waarom?
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 11:59 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0