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.