解释bash命令

时间:2016-01-06 02:29:04

标签: bash command

我检查了一些资源,但仍难以找到解释代码的线索。

$ find . -iname "*.dwp" -exec bash -c 'mv "$0" "${0%\.dwp}.html"' {} \;
$ find . -name ".DS_Store" -exec rm {} \;

更具体地说,-iname-name之间的区别是什么?什么" -c"和"%"象征?

你能解释一下这两个命令吗?

1 个答案:

答案 0 :(得分:1)

第一个:

  • -iname "*.dwp",指示find命令查找名称与模式*.dwp匹配的文件,忽略大小写,例如:./a.dwp
  • -exec expression {} \;部分,执行命令bash -c 'mv "$0" "${0%\.dwp}.html"' {}{}将被每个文件的路径替换。表达式以分号结束。如果当前目录中有文件a.dwp,则bash -c 'mv "$0" "${0%\.dwp}.html"' a.dwp将执行。

    bash -c 'mv "$0" "${0%\.dwp}.html"' {}:
    
    • -c表示从字符串读取命令,不启动交互式shell。
    • $0是命令的参数,在此示例中为a.dwp
    • ${0%\.dwp}.html是字符串操作,%从结尾删除最短匹配,因此对于a.dwp,从结尾删除.dwp以获取文件名{{1}无延伸。

    所以命令是a

如果您了解第一个,那么第二个非常简单。