the*_*777 6 bash find command-line-interface
这些是用于将制表符转换为空格的 bash 命令。这是原始 stackoverflow 帖子的链接。
这个\;在命令末尾使用
find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t| |g' '{}' \;
Run Code Online (Sandbox Code Playgroud)
这个使用+而不是\;.
find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t| |g' '{}' '+'
Run Code Online (Sandbox Code Playgroud)
两者到底有什么区别?
Kei*_*son 13
or与 bash 无关\;。+它是命令的参数find,特别是finds-exec选项的参数。
find -exec用于{}将当前文件名传递给指定的命令,并\;标记命令参数的结尾。之所以需要它\,是因为;它本身对于bash 来说是特殊的;通过输入\;,您可以传递一个文字;字符作为参数。(您也可以键入';'或";"。)
该+符号(\不需要,因为+对于 bash 来说并不特殊)会导致find使用多个参数而不是仅调用一次指定的命令,其方式类似于xargs。
例如,假设当前目录包含 2 个名为abc和的文件xyz。如果您输入:
find . -type f -exec echo {} \;
Run Code Online (Sandbox Code Playgroud)
它调用该echo命令两次,产生以下输出:
./abc
./xyz
Run Code Online (Sandbox Code Playgroud)
如果您改为输入:
find . -type f -exec echo {} +
Run Code Online (Sandbox Code Playgroud)
然后仅find调用echo一次,输出如下:
./xyz ./abc
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请键入info find或man find(如果您的系统上安装了文档),或者您可以在线阅读手册:http://www.gnu.org/software/findutils/manual/html_node/find_html/
| 归档时间: |
|
| 查看次数: |
1488 次 |
| 最近记录: |