Linux命令查找目录中具有相同名称但扩展名不同的所有文件?

时间:2015-05-15 08:30:39

标签: linux file command-line

我正在开发一个项目,我需要处理大量具有相同名称但扩展名不同的文件。

请建议命令/解决方案以获取文件名。

提前致谢

2 个答案:

答案 0 :(得分:1)

你的助手是find命令

find /<directory_name> -name  <file_name.\*>

答案 1 :(得分:0)

find "$searchdir" -name "${filespec%.*}".\*

将找到名为&{34; foo&#34;的$searchdir中的所有文件。如果$filespec的格式为&#34; foo.bar&#34;,则附加文件扩展名。

当然,如果$filespec的格式为&#34; foo.bar.baz&#34;,您会找到名为&#34; foo.bar&#34;的所有文件。有文件扩展名,所以要小心这些文件。

如果您只想要根文件名(例如&#34; foo.bar.baz.quux&#34; - &gt;&#34; foo&#34;),那么您应该使用%%代替%变量之后的filespec

如果您需要从filespec中删除前面的目录名,可以将其与basename实用程序结合使用:

find "$searchdir" -name "$(basename "${filespec%.*}")".\*