Bei folgender Befehlszeile
$ meinbefehl > logdatei
wird die Datei logdatei überschrieben, wenn sie vorher existiert hat.
Dieses Überschreiben kann in vielen Fällen nicht gewünscht sein. Hierfür gibt es in verschiedenen Shells (C,ksh,bash) die Option noclobber.
| C-Shell | Bash, ksh |
|---|---|
| % set noclobber | $ set -o noclobber |
| % ls | $ ls |
datei1 datei2 | datei1 datei2 |
| % cmd > datei2 | $ cmd > datei2 |
datei2: File exists. | -bash: datei2 : cannot overwrite existing file |
Um die Datei dennoch überschreiben zu können, ist ein ! bzw. ein | zu verwenden.
| C-Shell | Bash, ksh |
|---|---|
% cmd >! datei2 | $ cmd >| datei2 |
noclobber ist keine Umgebungsvariable, d.h. es ist dieser Wert für jede Shell zu setzen (z.B. in der .bashrc).