Wie kommt es, dass die Weiterleitung von Ja zu einer Datei nicht funktioniert?

0

Ich habe versucht, dies zu tun:

yes > yes.txt

Anschließend wird yes.txt erstellt, ist jedoch vollständig leer.

Rasiermessersturm
quelle
1
Kann unter OS X (BSD) nicht reproduziert werden. Können Sie yes | cat -v > yes.txtvielleicht Ihre Ja-Implementierung yesirgendwie verhindern, dass in eine Datei geschrieben wird?
Daniel Beck
Außerdem möchten Sie dies auf StackOverflow fragen, denke ich.
Tekknolagi
1
@tekknolagi Sie schließen es einfach als Off-Topic. Es ist hier vollkommen akzeptabel.
Daniel Beck
@ DanielBeck okey doke
tekknolagi
2
Der Quellcode für GNU yeszeigt keine spezielle Behandlung der Ausgabe in Dateien an. Sind Sie sicher, dass zB Ihre Festplatte noch nicht voll ist? Haben Sie den Befehl abgebrochen, sodass z. B. das Puffern von Schreibvorgängen auf der Festplatte kein Problem mehr darstellt?
Daniel Beck

Antworten:

1

du willst machen

`yes` > yes.txt

Welches wird ausgeführt yesund schreibt die Ausgabe anyes.txt


Hinweis: Der yesBefehl gibt standardmäßig endlos eine Zeile 'y' aus. Der oben genannte Vorgang belegt Speicher, CPU und Speicherplatz, bis kein freier Speicher mehr verfügbar ist. Danach wird er beendet. Möglicherweise müssen Sie es manuell beenden.

tekknolagi
quelle
2
Hast du das schon probiert? ` yes` wird niemals enden, es wird nur viel Speicher verbrauchen!
Daniel Beck
1
@ DanielBeck das ist, was er will ... Ich habe es tatsächlich versucht. Er hat nie gefragt, ob es ratsam sei: P
tekknolagi
@ DanielBeck siehe @ ChrisNava Antwort und @ RazorStorm Antwort
tekknolagi
3
Bitte stellen Sie sicher, dass Sie wissen, was `` oder $ () macht, bevor Sie das benutzen. @Daniel hat Recht, dass es nur einen großen Speicherverbrauch und eine Kündigung gibt, nachdem kein freier Speicher mehr vorhanden ist.
Cougar
1
Ich bin mit tekknolagi einverstanden. Wenn der OP von einer Klippe springen will, lass es sein.
Surfasb
1

Ihre ursprüngliche Lösung yes > yes.txtsollte funktionieren ... obwohl Sie sie so umgehen könnten

while true; do echo yes; done >> yes.txt
Fuchs
quelle
0

Ich habe die Lösung gefunden; meine festplatte war voll>. <

Rasiermessersturm
quelle
1
Wenn dies zutrifft, sollten Sie eine No space left on deviceFehlermeldung erhalten haben.
bwDraco
@Gryllida, entferne einige Dateien und versuche es erneut. Zuerst habe ich bei einer anderen Aktion festgestellt, dass das Diskkontingent den Fehler überschritten hat. Ich dachte, das Löschen der Datei würde helfen, aber die Datei wurde tatsächlich nicht gelöscht.
Rasiermessersturm