Защита от случайной перезаписи содержимого файла


ramok аватар

ramok - Posted on 02 Ноябрь 2008

Защита от случайной перезаписи содержимого файла.

Любой знающий основы шела знает как можно создать файл с помощью перенаправления ввода/вывода

$ echo какой то текст > test.txt
$ cat test.txt
какой то текст

Но если в файле test.txt был не пустой то содержимое файла перепишется, и восстановить его уже не удастся.
В bash от такого можно защитится с помощью установки опции set -o noclobber

$ set -o noclobber
$ echo другой текст > test.txt
bash: test.txt: не могу переписать уже существующий файл
$

Если вы знаете что делаете, и хотите переписать файл то можно или отменить эту опцию или воспользоваться специальной формой перенаправления >|

$ set +o noclobber
#или
$ echo тест >| test.txt

В zsh аналогичные опции выглядят так

$ setopt clobber
$ setopt noclobber

И кроме привычного >| есть другая форма >!

$ echo тест >! test.txt
$ echo тест >| test.txt
0
Ваша оценка: Ничего
..

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.