Noclobber
noclobber
Zabezpiecza przed przypadkowym nadpisaniem istniejącego pliku w przypadku używania przekierowań

Opcja 'noclobber'

Włączenie opcji

set -o noclobber

lub
set -C

Wyłączenie opcji

set +o noclobber

lub
set +C

Po włączeniu tej opcji jeśli w przekierowaniach plik i >& plik plik istnieje, to zostanie wyświetlony błąd. Zabezpiecza to przed przypadkowym nadpisaniem istniejącego pliku.
Aby zapisać do istniejącego pliku należy wyłączyć opcję 'noclobber' lub też użyć przekierowania >| plik.

Przykład:

#!/bin/bash
touch plik
set -o noclobber
ls > plik
ls >| plik
set +C
echo koniec > plik

Po wykonaniu powyzszego skryptu powinniśmy uzyskać błąd:

bash: plik: cannot overwrite existing file

Jest to związane z tym, że opcja noclobber była wlączona w momencie przekierowywania wyjścia z polecenia ls (a plik przecież istniał!).
O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License