遍历文件夹中的所有文件夹并运行命令

Posted

技术标签:

【中文标题】遍历文件夹中的所有文件夹并运行命令【英文标题】:Loop through all folders within a folder and run command 【发布时间】:2016-06-23 21:36:55 【问题描述】:

我有一个 .png 文件,我不小心将它保存为 .psd,埋在资产目录的某个位置。我想出了如何通过file -I /pathWithFileName 打印文件的实际类型,在我的桌面上打印出'Untitled-1.png: image/vnd.adobe.photoshop; charset=binary' 这是正确的,因为我故意犯了错误来测试。

现在我想在我的整个资产目录上运行它,包括所有子文件夹 .imagesets,但这并不能完全解决问题:

find /mypath/Assets.xcassets/foldername/_foldername -type f -maxdepth 2 for i in *.imageset; file -I *.jpg ;

这不起作用。关于如何遍历所有 Assets.xcassets 文件夹并打印出文件 -I /pathWithFileName 的任何想法,以便我可以看到哪个图像保存错误?

【问题讨论】:

【参考方案1】:

使用-path 选项在以.imageset 结尾的目录中匹配以.psd 结尾的文件。然后使用-exec 选项对文件运行命令。

find /mypath/Assets.xcassets/foldername/_foldername -type f -maxdepth 2 -path '*.imageset/*.psd' -exec file -I  +

【讨论】:

我观察到问题文本 OP 说他不小心保存为 .psd,但他的示例代码似乎假定错误的扩展名是 .jpg。这个答案是针对后者的,尽管如果这是 OP 真正想要的,如何更改命令来检查 .psd 文件应该很明显。

以上是关于遍历文件夹中的所有文件夹并运行命令的主要内容,如果未能解决你的问题,请参考以下文章

cmd中bat遍历文件夹下所有文件,并进行特定操作

PHP遍历并打印指定目录下所有文件实例

请教,如何遍历一个文件夹下的所有文本文件

无法遍历所有文件夹

R:循环遍历目录中的所有文件,应用列替换命令

如何用bat遍历文件,并找到文件名包含某字符的文件吗?