Forum: PC-Programmierung Inhalt einer Datei löschen?


von extern (Gast)


Lesenswert?

hallo,

gibt es einen Befehl, mit dem ich den Inhalt einer Datei löschen kann?
Will nicht die komplette Datei löschen! Soll halt nur nichts mehr drin 
stehen

von foo (Gast)


Lesenswert?

Befehl für auf der Kommandozeile ausführen (-> Windows? Linux? 
Sonstwas?), oder "Befehl" (eigentlich Funktion) in einer 
Programmiersprache (welche?)

von TestX (Gast)


Lesenswert?

Kommt auf die datei an...

von Peter II (Gast)


Lesenswert?

extern schrieb:
> gibt es einen Befehl

die Frage ist, was du unter Befehl verstehst.

Unter Windows kann man folgende Funktion verwenden

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365531(v=vs.85).aspx

von Klaus (Gast)


Lesenswert?

Was genau an dem Kommando "rm" oder "del" erfüllt nicht Deine Wünsche?

von extern (Gast)


Lesenswert?

Unter windows (visual studio) in C.

Die datei ist eine Textdatei, die vorher mit fopen geöffnet wird.

von foo (Gast)


Lesenswert?

Klaus schrieb:
> Was genau an dem Kommando "rm" oder "del" erfüllt nicht Deine
> Wünsche?

Das steht doch in seiner Frage mehr als deutlich drin, warum rm und del 
nicht geeignet sind.

von Klaus (Gast)


Lesenswert?

foo schrieb:
> Klaus schrieb:
>> Was genau an dem Kommando "rm" oder "del" erfüllt nicht Deine
>> Wünsche?
>
> Das steht doch in seiner Frage mehr als deutlich drin, warum rm und del
> nicht geeignet sind.

So? Dann ist es ja gut.

von Joachim B. (jar)


Lesenswert?

extern schrieb:
> gibt es einen Befehl, mit dem ich den Inhalt einer Datei löschen kann?

nein

welche Möglichkeiten hast du ein vollbeschriebenes Blatt Papier oder 
eine mit Schriftzeichen verzierte Steintafel zu löschen?

Das Papier kannst du verbrennen oder die Schriftzeichen zu übermalen.
Die Steintafel kannst du zertrümmern oder die Buchstaben übermeißeln bis 
sie unkenntlich sind.

Datei den Inhalt löschen, nur durch überschreiben, siehe Papier.

von Lutz H. (luhe)


Lesenswert?

Datei zum Schreiben öffnen,
Nichts ab Dateianfang hineinschreiben.
Datei Schliesen

von Rolf M. (rmagnus)


Lesenswert?

foo schrieb:
> Klaus schrieb:
>> Was genau an dem Kommando "rm" oder "del" erfüllt nicht Deine
>> Wünsche?
>
> Das steht doch in seiner Frage mehr als deutlich drin, warum rm und del
> nicht geeignet sind.

Nein, das steht da nicht.
Es ist nicht klar, warum er die Datei nicht löschen will. Wenn nachher 
eine leere Datei mit dem selben Namen da sein muß, würde ich sie einfach 
löschen und wieder neu als leere Datei anlegen. Ob das eine Option ist, 
bleibt unklar.

von foo (Gast)


Lesenswert?

extern schrieb:
> Unter windows (visual studio) in C.
>
> Die datei ist eine Textdatei, die vorher mit fopen geöffnet wird.

fopen -> stdio -> wähle die Lösung die hier unter "without Posix" steht:

http://stackoverflow.com/questions/13755516/is-there-a-guaranteed-and-safe-way-to-truncate-a-file-from-ansi-c-file-pointer

In Kurzform, du machst freopen auf dein FILE*, mit "w" ("Truncate file 
to zero length") als Mode.

von Peter II (Gast)


Lesenswert?

Rolf Magnus schrieb:
> Es ist nicht klar, warum er die Datei nicht löschen will. Wenn nachher
> eine leere Datei mit dem selben Namen da sein muß, würde ich sie einfach
> löschen und wieder neu als leere Datei anlegen. Ob das eine Option ist,
> bleibt unklar.

das will er nicht, warum ist egal. Bei neu anlegen gehen auch rechte und 
Eigenschaften verloren.

Joachim B. schrieb:
> extern schrieb:
>> gibt es einen Befehl, mit dem ich den Inhalt einer Datei löschen kann?
>
> nein
>
> welche Möglichkeiten hast du ein vollbeschriebenes Blatt Papier oder
> eine mit Schriftzeichen verzierte Steintafel zu löschen?

zum glück sind Computer etwas schlauer als ein Papier und können das.

von Fpgakuechle K. (Gast)


Lesenswert?

cat /dev/null/ > datei #wenn ich mich recht erinnere

von extern (Gast)


Lesenswert?

Lutz H. schrieb:
> Datei zum Schreiben öffnen,
> Nichts ab Dateianfang hineinschreiben.
> Datei Schliesen

hat geklappt, danke!

von ??? (Gast)


Lesenswert?

Fpga Kuechle schrieb:
> cat /dev/null/ > datei #wenn ich mich recht erinnere

geht kuerzer,

> datei

von lach (Gast)


Lesenswert?

extern schrieb:
> hat geklappt, danke!

Troll!

von Karl Käfer (Gast)


Lesenswert?

Hallo Rolf,

Rolf Magnus schrieb:
> Es ist nicht klar, warum er die Datei nicht löschen will. Wenn nachher
> eine leere Datei mit dem selben Namen da sein muß, würde ich sie einfach
> löschen und wieder neu als leere Datei anlegen.

Das ist dann aber nicht atomar.

Liebe Grüße,
Karl

von Joachim B. (jar)


Lesenswert?

Peter II schrieb:
> zum glück sind Computer etwas schlauer als ein Papier und können das.

Computer und schlau? wusste ich nicht, erzähle mehr darüber

und man findet den Inhalt auf der Platte nie wieder?

Selbst wenn die Datei leer wäre ist der ehemalige Inhalt i.d.R noch eine 
Weile auf der Platte.

Warum gibt es dann Shredder Programme um das sicher zu überschreiben, 
also überflüssiger SchnickSchnack für Dumme.

von Peter II (Gast)


Lesenswert?

Joachim B. schrieb:
> und man findet den Inhalt auf der Platte nie wieder?

wer hat das behauptet?

> Selbst wenn die Datei leer wäre ist der ehemalige Inhalt i.d.R noch eine
> Weile auf der Platte.
wenn man so argumentiert, kann man auch sagen man kann keine Daten 
löschen.


Wenn es eine SSD ist, ist es sogar recht wahrscheinlich das der Inhalt 
wirklich gelöscht wird

von ??? (Gast)


Lesenswert?

Karl Käfer schrieb:
> Rolf Magnus schrieb:
>> Es ist nicht klar, warum er die Datei nicht löschen will. Wenn nachher
>> eine leere Datei mit dem selben Namen da sein muß, würde ich sie einfach
>> löschen und wieder neu als leere Datei anlegen.
>
> Das ist dann aber nicht atomar.

Klassiker, syslog.
Das Ding wird immer groesser und der Plattenspeicher wird knapp,
kiste muss aber weiterlaufen.

Filehandler einer neuerstellten zwar gleichnamigen Datei ist ja ein 
anderer.
Programme die ihre meldungen da reinschreiben laufen wollen ins Leere.

von Joachim B. (jar)


Lesenswert?

Peter II schrieb:
> wenn man so argumentiert, kann man auch sagen man kann keine Daten
> löschen.

sagte ich doch :p

Joachim B. schrieb:
> extern schrieb:
>> gibt es einen Befehl, mit dem ich den Inhalt einer Datei löschen kann?
>
> nein

von Fpgakuechle K. (Gast)


Lesenswert?


von ??? (Gast)


Lesenswert?

Probiers,

"> filename"

geht bei allen bash-artigen.

root@box:$tail -2 /var/log/syslog
Jun 24 21:28:39 box kernel: eth2: Oversized Ethernet frame spanned 
multiple buffers, entry 0x19 length 1518 status 05ee8d00!
Jun 24 21:28:39 box kernel: eth2: Oversized Ethernet frame eccf1190 vs 
eccf1190.
root@box:$> /var/log/syslog
root@box:$tail -2 /var/log/syslog
root@box:$

von Günter Lenz (Gast)


Lesenswert?

extern schrieb:
>gibt es einen Befehl, mit dem ich den Inhalt einer Datei löschen kann?
>Will nicht die komplette Datei löschen! Soll halt nur nichts mehr drin
>stehen

Mit einem Texteditor eine Leere Datei abspeichern,
und dann im Befehlsfenster folgendes eingeben.

Type Leerdatei.TXT > IrgendEineDatei.XYZ

Danach ist IrgendEineDatei.XYZ leer.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

So geht das unter DOS bzw. dem Windows-Kommandozeilenprozessor:
1
echo. > datei.txt

Wichtig ist hierbei der Punkt nach "echo".

von Richard H. (richard_h27)


Angehängte Dateien:

Lesenswert?


von Thomas H. (thoern)


Lesenswert?

Joachim B. schrieb:
> extern schrieb:
>> gibt es einen Befehl, mit dem ich den Inhalt einer Datei löschen kann?
>
> nein

Natürlich geht das. Unter Unix/Linux z.B. so:
echo -n > datei.txt
oder
cat /dev/null > datei.txt
oder einfach nur
> datei.txt

wahrscheinlich noch 100 andere Möglichkeiten....

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.