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

30 Tage alte Dateien verschieben, symlink hinterlassen

hallo leute,

ich hab nen dickes Problem mit symbolischen Linken und habe in der schule eine ziemlich kompleye Aufgabe bekommen und steige dort nicht so hinter. Da ich vorher nie etwas mit Linux zu tun hatte.

hier ist mal die Aufgabe:

Erstellen Sie ein Script, welches z.B in nutzungsschwachen Zeiten
automatisch (cron) läuft und beispielsweise Dateien, die älter als 30 Tage
sind auf einen anderen (weil billigeren und langsameren) Datenträger
verschieben.
Experimentieren Sie als Beispiel mit einem Tag und 2 voneinander
unterschiedlichen Verzeichnissen.
Die so verschobenen Dateien sollen an Ihrem ehemaligen Ursprungsort über
einen symbolischen Link weiterhin erreichbar sein.

das hab ich schon:

find . -ctime +30 -exec mv {} ./../Spiegel \;

weiter komm ich einfach nicht
ich weiss noch das ln -s symbolische Linke erzeugt aber woher soll dieser Befehl wissen welche Dateien er verlinken soll ????

Vielleicht könnt ihr mir ja helfen... :roll:
 

framp

Moderator
Teammitglied
Diese HILFE Threds nehmen in der letzten Zeit hier im LC wirklich überhand.

@esel - Wähle einen aussagekräftigen Titel Deines Problems und nicht HILFE ... dann lesen vielleicht ein paar Leute dein Thread
 
Vielleicht bringt dich ja auch "man symlink" weiter :) (hab das jetzt nur mit "apropos link" gefunden :D
Dort steht: "symlink (3p) - make a symbolic link to a file"
Aber "ln -s" funktioniert bei mir so (hab einfach einen kleinen Test gemacht):
Code:
linux:~/Desktop> ln -s 1.png /home/tux
Damit wird eine symbolische Verknüpfung der Datei 1.png aus dem aktuellen Verzeichnis im Verzeichnnis "/home/tux" erstellt ;)
 
Hier hilft keine Pipe, du brauchst ein extra-Skript, dass mv und ln kombiniert, da man keine zwei Kommandos auf einmal absetzen kann. Mit anderen Worten also:
Code:
find . -ctime 30+ -print0 | xargs -0 ~/bin/iliketomoveit
und
Code:
#!/bin/bash

mv "$orig/$1" "hierhin/";
ln -s "hierhin/$1" "$orig/$1";
plus entsprechende $-Magie um die Pfade richtig zu setzen.
 
Ich werd das nachher mal ausprobieren. Mein Dozent meinte ich solle das mit awk-Skript ausführen. Indem ich mir den Pfad in eine extra mit find in eine Datei einlese und mit awk den Pfad zerlege z.B. /home/suse/bin/Txt
in /home/suse/bin , das ich nur noch den Pfad habe ohne Datei. und mir selber in einer anderen Datei einen Skript generieren lassen soll der dann immer alles durchgeht und sich jedesmal selber umschreibt.

:roll:

... davon hab ich aber keine Ahnung :cry:
 
Oben