Frage:
Linux Script zum löschen von dateien?
Georg E
2008-10-09 08:05:24 UTC
In welcher Scriptsprache müsste ich für Linux (Ubuntu) schreiben und wie müsste der Script aussehen?
Fünf antworten:
Adam
2008-10-09 13:11:10 UTC
Was genau möchtest Du löschen bzw. wie stellst Du Dir das vor? Um eine Datei zu löschen, brauchst Du kein extra Skript, sondern man gibt einfach »rm Dateiname« ein. Im Dateinamen kannst Du Wildcards verwenden, um mehrere Dateien oder den Inhalt ganzer Verzeichnisse zu löschen. Wenn Du bestimmte Dateien suchen möchtest, kannst Du es auch mit find kombinieren.



Wenn Du bestimmte Dateien (z.B. in regelmäßigen Abständen) immer wieder löschen möchtest, kannst Du natürlich ein Shell-Skript erstellen - einfach eine Textdatei erstellen »#!/bin/sh« in die erste Zeile schreiben und darunter die gewünschten Befehle, so wie Du sie auch direkt auf der Shell eingeben könntest; das x-Bit setzen und fertig.



Ansonsten müßtest Du schon etwas genauer erklären, was Du vorhast und welche Vorkenntnisse Du mitbringst.
Debian
2008-10-09 15:36:07 UTC
apt-get remove (Dateiname)

apt-get install -f (Dateiname)

---

apt-get clean

apt-get autoremove



Beispiel: Wenn du das Spiel "Trigger" entfernen willst, dann tippe apt-get remove trigger ein, anschliessend apt-get clean und apt-get autoremove, damit alles von "trigger" entfernt wird. Notfalls noch in der Synaptic unter "Status" nachsehen, ob sich da noch Dateileichen befinden.



@Buko: Die Befehlsstruktur bei Ubuntu ist anders, wie bei anderen Linuxdistributionen. Nicht zu vergessen, das "sudo" bei Ubuntu!



Welcher Depp verteilt hier auf richtige Antworten "Daumen runter"?
anonymous
2008-10-09 21:56:04 UTC
Du musst schon konkreter werden, was du genau willst.



Bevor man hier einfach mit apt-get-* kommt, einfach folgendes durchlesen:



http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.de.html



Mini-tut Anlegen/Löschen von Dateien:

1.) Dateien anlegen:



touch datei1.txt

touch datei2.txt

touch datei3.txt



$>ls

datei1.txt datei2.txt datei3.txt



2.) Dateien löschen:

rm datei1.txt (löscht nur datei1.txt)

rm datei*.txt (löscht alle dateiX.txt, X ist die jeweilige Ziffer, * ist ein "Wildcard"-Zeichen.)



$>ls

$-> (leer)



Als Shellscript (Mit Texteditor as loeschen.sh gespeichert, mit chmod 1 ausführbar (oder chmod x) gemacht und mit ./loeschen.sh gestartet):



----------------

#!/bin/sh

echo "Dieses Shellscript löscht Dateien im akt. Verzeichnis (datei*.txt):";pwd

echo "Es wird interaktiv nachgefragt, mit der Option -i"

rm -i datei*.txt

echo "Nun sind nur noch folgende Dateien vorhanden"

ls

--------------



Für wiederkehrende Aktionen (cronjobs, irgendwie mit Autostart bei Windows vergleichbar und auch wieder nicht) werden die sh-Dateien jeweils nach entsprechenden Wunsch in das jeweilige Cron-Verzeichnis abgelegt.



debian:/etc# ls cron

cron.d/ cron.hourly/ crontab

cron.daily/ cron.monthly/ cron.weekly/



Was crontab ist entnimmst du bitte da:

http://www.linuxhilfen.org/befehle/crontab.html



Dateien kopiert man mit cp (ggf. mit einem sudo vorran...) Für den Rest: Lies das Handbuch.
Rolf J
2008-10-09 15:58:03 UTC
Unter Linux braucht man nicht mal nen script. Dazu kann man das Kommando find benutzen.



Beispiele:

find . -name *tif -exec rm {} \; (löscht alle tif Dateien im aktuellen und in allen Unterverzeichnissen)



find /tmp -type f -ctime 5 -exec rm {} \; (löscht alle Dateien die älter sind als 5 Tage im Verzeichnis /tmp und dessen Unterverzeichnissen)



Das find Kommando kann man mit allen möglichen Parametern aufrufen, um Datein zu filtern. Um die Optionen anzusehen:



"man find" aufrufen
Buko von Alberstadt
2008-10-09 15:41:39 UTC
...also, Wüffel, löscht man mit apt-get remove usw. nicht Programme?



Ich hätte jetzt auf rm -rf /* getippt, wobei hier ohne Rückfrage alles von der Platte geputzt wird, was ab "*" steht. Also macht rm -rf / die ganze Platte sauber :-/


Dieser Inhalt wurde ursprünglich auf Y! Answers veröffentlicht, einer Q&A-Website, die 2021 eingestellt wurde.
Loading...