随着时间的推移,我一次又一次地遇到相同的模式:我有某种目录结构:
example/
??? a
? ??? c
? ??? d.txt (120k)
? ??? e.txt (60k)
??? b
??? f.txt (280k)
Run Code Online (Sandbox Code Playgroud)
我想将文件“复制”到另一个目录,例如,example_grepped
对每个目录应用一个命令,就像代替cp
-grep ERROR
比如说,我最终得到一个具有相同结构的文件夹,但文件通过grep
.
example_grepped/
??? a
? ??? c
? ??? d.txt (1k)
? ??? e.txt (0b)
??? b
??? f.txt (12k)
Run Code Online (Sandbox Code Playgroud)
用于转换媒体文件(FLAC 到 MP3,PNG 到 JPG)的相同模式,这一次在作为构建过程的一部分转换不同的模式格式时。
有我可以使用的通用命令吗?像foobar example example_grepped --command 'grep ERROR'
或foobar flacs mp3s --command 'ffmpeg -i {} {}.mp3'
?
xargs
也许是一面不起眼的旗帜?(一find
管道通过xargs
将几乎足够了,但如果不是所有的命令期望的目录结构已经存在。)