BASH - 对具有某些扩展名的所有文件执行命令

时间:2015-07-16 13:44:56

标签: bash

我必须在 bash 中为扩展名为“.prot”

的文件夹中的所有文件执行命令

该命令名为“bezogener_Spannungsgradient”,它被称为:

bezogener_Spannungsgradient filename.prot

谢谢!

2 个答案:

答案 0 :(得分:4)

find . -maxdepth 1 -name \*.prot -exec bezogener_Spannungsgradient {} \;

-maxdepth <depth>阻止find递归到超出给定深度的子目录。

-name <pattern>find限制为与该模式匹配的文件。转义是必要的,以防止bash将find选项扩展为匹配文件列表。

-exec <cmd> {} \;在每个找到的文件上执行<cmd>(用文件名替换{})。如果该命令能够处理文件的列表,请使用+代替\;

我一般建议熟悉其他许多options of find;它是那里最被低估的工具之一。 ; - )

答案 1 :(得分:2)

你可以这样做:

for f in *.prot; do
  bezogener_Spannungsgradient "$f"
done