我想获取当前目录下所有文件的MIME类型。为什么不起作用?我已经在OSX或Linux上测试过bash。“文件”抱怨找不到文件,但是如果我使用完全相同的路径运行它,它将起作用。
$ find . -type f | xargs -n 1 -I FILE echo $(file --mime-type -b FILE)
ERROR: cannot open './foo.txt' (No such file or directory)
...
$ file --mime-type -b ./foo.txt
text/plain
当然,在现实世界中,我不仅可以“回显”响应,还需要在另一个命令中使用MIME类型的字符串。
这是我所能解决的最简单的问题。我想我对xargs
文件名替换不了解?
命令替换$(file --mime-type -b FILE)
在传递给之前由外壳执行xargs
,这就是为什么您看不到所需内容的原因。引用$(file --mime-type -b FILE)
并将其传递给bash -c
xargs
find . -type f | xargs -n 1 -I FILE bash -c 'echo $(file --mime-type -b FILE)'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句