Sed script - разрешение запрещено в временном файле
Я просто использовал комбинацию find и sed для замены строк в файлах каталога.
find . -type f -exec sed -i 's,foo,bar,g' {} +
Он выполнил свою работу. После этого я вышел из сервера (подключенный через SSH), а затем вспомнил, что мне нужно снова запустить команду. Поэтому я произвел одну и ту же команду со слегка измененными строками find/replace, но она больше не работала, указав следующую ошибку:
sed: couldn't open temporary file ./sedPFq4Ck: Permission denied
Что теперь не так?
FWIW: имя файла указанного временного файла изменяется после каждой новой попытки.
Ответы
Ответ 1
При редактировании файла на месте sed
создает временный файл, сохраняет результат, а затем, наконец, mv
исходный файл с временным.
Проблема заключается в том, что у вас нет разрешения на запись в каталоге, где sed
пытается создать временный файл.
Как файл ./sedPFq4Ck
, проверьте разрешение каталога, в котором вы используете команду find
.