Поскольку вам нужно только содержимое нового файла, но имена файлов должны быть одинаковыми, вы можете сделать это за один шаг с помощью cat
.
Следующие два сценария работают рекурсивно и с любым именем файла, даже с теми, которые содержат пробелы или символы новой строки или что-то еще, что может прерваться, если вы попытаетесь проанализировать ls
вывод.
Bash> 2.x
#!/bin/bash
newFile="/path/to/newFile"
while IFS= read -r -d '' file; do
cat "$newFile" > "$file"
done < <(find . -type f -print0)
Bash 4.x
#!/bin/bash
newFile="/path/to/newFile"
shopt -s globstar
for file in **; do
[[ -f "$file" ]] || continue
cat "$newFile" > "$file"
done