• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Dateien ins Zip packen!

Hk95

Newbie
Hallo Community! Habe vor kurzem schon eine Frage hier reingestellt und durch eure Hilfe konnte ich meinen Code ausbessern und viel dabei lernen! Er klappt nun so wie er soll, jedoch hab ich noch eine Verständnisfrage beim Archivieren von Dateien.

Mein Shell-Skript soll Dateien die älter als X Tage sind in eine Zip-Datei packen und sie dann löschen. Das klappt auch ganz gut, jedoch kann ich die gelöscht Datei nun nicht in der Zip-Datei die im Skript packed.zip heißt finden. Woran könnte das liegen?

Code:
#!/bin/bash

#Nutzereingabe für Alter der Dateien
echo "How old should the files be?"
read Number_days

if ! [[ "$Number_days" =~ [0-9]+$ ]];then
        echo "Error, only enter a number please!"
        exit 1
fi

#Mindestalter der Dateien filtern und ausgeben
IFS=$'\n'
Files=$(find ../hellow -maxdepth 1 -mtime +$Number_days)
echo $Files

#Einzelne Dateien durchgehen und Nutzerabfrage
Archieve="packed.zip"
Counter=0

for File in $Files;do
        echo -n "Do you want to archive <$File>?(y/n):"
        read Decision

        #Eingabe überprüfen und Fallunterscheidung vollziehen
        if [ "$Decision" != "y" ] && [ "$Decision" != "n" ]; then
                echo -e "No proper Input recognized! Please only enter y or n!\a"
                continue

        elif [ "$Decision" = "n" ]; then
                echo -e "skipped current Fie!\a"
                continue
        
        #Archivierung wird zugestimmt: Datei wird verschoben und gelöscht!
        elif [ "$Decision" = "y" ]; then
                echo "File will be archived and the original will be deleted!"
                zip "Archieve" $File
                let Counter++
                rm -v $File
                continue        
        fi
done

#Bestätigung der Ausgabe
echo "$Counter File(s), older then $Number_days were successfully put in the <$Archieve>"

exit 0

Nachdem ich die zip öffne steht nur: Das Archiv ist leer oder Ark kann den Inhalt nicht öffnen. Funktioniert der "zip "Archieve" $File" command in meinem Skript doch nicht oder ist es etwas anderes?

Ich bedanke mich schonmal im Vorraus und liebe Grüße,
Hans
 

josef-wien

Ultimate Guru
Für Dein Archiv kommen im Skript zwei verschiedene Namen vor.

P. S. In Deinem anderen Beitrag hast Du offenbar selbst eine Lösung gefunden, ohne sie aber dort für die Nachwelt zu dokumentieren.
 
OP
H

Hk95

Newbie
@josef-wien
Ich habe meinen letzten Post als [gelöst] markiert und die Lösung war im Grund nur dass ich $File und nicht $Files schreiben musste um meine Schleife zum funktionieren zu bringen! Habe ich eigentlich auch dazugeschrieben!

Was meinst du damit dass ich zwei verschiedene Namen für Archiv im Skript habe? ich sehe nur in Zeile 17: Archieve =
und in Zeile 36:
zip "Archieve" $File

Für mich sehen die beiden identisch aus und müssten keinen Fehler bringen! Oder überseh ich was?
 

marce

Guru
Code:
                zip "Archieve" $File
erstellt ein zip-File mit dem Namen Archieve - nicht eines mit dem Namen aus der Variable Archieve...
 

abgdf

Guru
In welchem Thema sollen wir denn nun antworten?

Mach' doch bitte die Namen normaler Variablen klein, also "$files", nicht "$Files".
Am Anfang großgeschriebene Variablennamen sind in vielen Sprachen z.B. für Klassen gedacht (die Du hier gar nicht verwendest).

Warum schreibe ich eigentlich (wie gewünscht) eine Liste mit Verbesserungsvorschlägen (im anderen Thema), wenn ich danach jeden Hinweis doch nochmal einzeln beschreiben muß? :???:
 
Oben