bestimmte Dateien Verschieben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
no_Legend
Beiträge: 57
Registriert: 29.01.2006 11:00:57

bestimmte Dateien Verschieben

Beitrag von no_Legend » 14.07.2006 13:38:05

Hi ich brauch mal hilfe bei nem Script.

Also es ist eigentlich ganz einfach es soll bestimmte Dateien also mit bestimmten Endungen in einen neu erstelltes verzeichniss verschiebt.

Das mit dem Verschieben hab ich mir so gedacht:

Code: Alles auswählen

#!bin/sh


######Begin der User Config######

#########################################################
######Variablen für die Aktion######

#Quell Verzeichnis
qpath=/hdd/hdd1/02_filesharing/01_fertig/
filetyps=*.mp3  

#Ziel Verzeichnis
dirname=
dirdate=`date +%Y-%m-%d` 
#Für nur KW hinter dem Jahr `date +%Y_-_%V` alles hinter = ersetzen
tpath=/hdd/hdd1/05_archiv/08_Mp3z/
    
######End of User Config######
#########################################################    
    
######Erzeugen des Ordner mit dem heutigem Datem
mkdir $tpath$dirdate
    
######Verschieben der gewünschten Dateien
mv $qpath$filetyps $tpath$dirdate
Nun wollte ich aber noch das vorher überhaupt erst mal geprüft wird ob Dateien zum verschieben vorhanden sind. Und genau hier liegt mein Problem, ich hab keine Ahnung wie ich das anstellen soll.

Ich hoffe mir kann jemand helfen

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 14.07.2006 13:50:54

Hi,

schau dir mal das Manual zu "find" an, damit solltest du dein Problem loesen koennen.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

no_Legend
Beiträge: 57
Registriert: 29.01.2006 11:00:57

Beitrag von no_Legend » 14.07.2006 14:11:32

Hab ich schon gemacht das mit dem find ist mir schon klar nur ich hab keine ahnung wie ich das in nen if packen soll.

Hab nur ein wenig erfahrung in C und nicht im Linux Scripting, macht mir irgen wie noch probleme.

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 14.07.2006 14:20:45

Hi,

du koenntest find ja direkt nur nach den Dateien suchen lassen die die von dir gesuchte Endung haben, dann brauchst du kein "if" mehr.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 14.07.2006 14:21:35

Warum immer so kompliziert?

Code: Alles auswählen

if ls $qpath$filetyps 2>&1 1>/dev/null ; then
  ######Erzeugen des Ordner mit dem heutigem Datem
  mkdir $tpath$dirdate
   
  ######Verschieben der gewünschten Dateien
  mv $qpath$filetyps $tpath$dirdate 
fi

no_Legend
Beiträge: 57
Registriert: 29.01.2006 11:00:57

Beitrag von no_Legend » 14.07.2006 14:39:04

@ToPeG

Kannst du mir das ganze einwenig erklären?

Also ls sucht die Dateien mit Endung *.mp3
und das ganze danach mit dem 2> usw was macht das denn?

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 14.07.2006 15:16:58

"if" überprüft nur ob ein Programm mit einem Staus ungleich 0 abgebrochen wurde, oder nicht. Bei einem Status gleich 0 lief das Programm sauber durch und if führt den Codeblock aus.
Wenn "ls" keine passenden Dateien findet bricht es mit einer Fehlermelung ab und einem Status ungleich 0. Die ganzen Ausgaben interessieren uns hier nicht, allso leite ich STDERR (Kanal 2) nach STDOUT (Kanal 1) um und schicke STDOUT (Kanal 1) ins Nirvana (/dev/null)
Allso wenn "ls" Dateien im entprechenden Ordner findet, das mit ".mp3" enden, so wird das Zielverzeichnis erstellt und alle "*.mp3" dorthin kopiert.

Ich hoffe das war verständlich...

Antworten