我想在文件夹中的每个文件的末尾添加一行。我知道可以用
echo apendthis >> file
将字符串附加到单个文件。但是递归执行此操作的最佳方法是什么?
答案 0 :(得分:7)
find . -type f -exec bash -c 'echo "append this" >> "{}"' \;
答案 1 :(得分:2)
你的意思是 recusively 是字面上还是比喻上的?如果你真的在寻找一个特定的递归解决方案,你可以这样做:
operate () {
for i in *; do
if [ -f "$i" ]; then
echo operating on "$PWD/$i"
echo apendthis >> "$i"
elif [ -d "$i" ]; then
(cd "$i" && operate)
fi
done
}
operate
否则,就像其他人所说的那样,使用find(1).
会更容易答案 2 :(得分:1)
另一种方法是使用循环:
find . -type f | while read i; do
echo "apendthis" >> "$i"
done