Чтобы перезаписать каждый файл во всей иерархии каталогов содержимым файлаdata
:
find. -type f ! -path './data' -exec sh -c 'tee "$@" <data >/dev/null' sh {} +
Если вы хотите добавить содержимое data
, используйте tee -a
выше.
! -path./data
позволяет избежать изменения файла, из которого мы читаем.
Дочерняя оболочка получит набор путей из find
и будет использовать tee
для распространения содержимого data
в эти файлы.
Чтобы использовать cat
вместоtee
:
find. -type f ! -path './data' -exec sh -c '
for pathname do
cat data >"$pathname"
done' sh {} +
Здесь, чтобы добавить данные, используйте >>
вместо >
.
Запустите это в безопасном каталоге. Запуск его в вашем домашнем каталоге уничтожит все ваши файлы. Чтобы восстановиться после этого, вам нужно будет восстановить из последней резервной копии. Никогда не запускайте команды, которые вы скопировали и вставили из Интернета, не зная, что они делают или могут делать.
Связанные: