我原来的工作目录层次结构:
$ find
.
./usr1
./usr1/.vimrc
./usr2
./usr2/.vimrc
我想在所有内容中添加一行——“设置编号”.vimrc文件。所以我运行了这个命令:
find -name ".vimrc" -exec echo "set number" >> {} \;
但是,所有.vimrc文件保持不变,并且有一个新创建的{}我的工作目录中的文件:
$ find
.
./usr1
./usr1/.vimrc
./{}
./usr2
./usr2/.vimrc
怎么了?我怎样才能正确地做到这一点?
答案1
如果你想重定向命令的输出-exec
,最好执行shell命令;根据您的情况尝试以下语法:
find -name ".vimrc" -exec sh -c 'echo "set number" >> {}' \;
这将按预期工作。