Я повинен додати зміст a файл до кінця кожного prefs.js
файл.
Пробували find -name 'prefs.js' -exec more filecontent >> '{}' \;
але це не спрацювало.
Я повинен додати зміст a файл до кінця кожного prefs.js
файл.
Пробували find -name 'prefs.js' -exec more filecontent >> '{}' \;
але це не спрацювало.
Відповіді:
Перенаправлення не відбувається для кожного файлу (це складно). Обхідний шлях - це створення нового оболонки для кожного файлу:
find -name 'prefs.js' -exec sh -c 'cat filecontent >> $1;' - '{}' \;
The -
необхідний, оскільки він стає нульовим ( $0
) аргумент в sh
Крім того, ви повинні використовувати cat
замість більше. More - це пейджер, який дозволяє користувачам прокручувати документ.
Використовувати xargs:
find -name 'prefs.js' | xargs -n1 bash -c 'cat content_to_be_added >> $1;' -
Він працює, щоб написати невеликий скрипт оболонки cbd.sh
#!/bin/bash
echo "filecontent" >> "$1"
Звичайно, ви можете замінити ехо
cat "somefile"
і дзвонити
find -name 'cbd[0-9].txt' -exec ./cbd.sh '{}' \;
в тому ж каталозі.
Синтаксис команди find з -exec є справжнім монстром.
filecontent
до кожногоprefs.js
файл