Bash - 循环遍历目录中的文件

时间:2016-04-28 14:02:30

标签: bash loops

我知道有很多类似的问题,但是因为所有神的爱我无法使它工作,或者我遗漏了一些完全明显的东西,在这种情况下请原谅..

简单目录,我想调用每个文件的名称和mime类型:

for i in "attachments/*"
do
     echo $i $(file --mime-type -b $i)
done

为什么我的输出如下:

attachments/query.sql attachments/script.sh text/plain text/x-shellscript

当我期待:

attachments/query.sql text/plain attachments/script.sh text/x-shellscript

1 个答案:

答案 0 :(得分:3)

/tmp/attach/*周围不需要引号。

for i in /tmp/attach/*
do
     echo "$i : $(file --mime-type -b $i)"
done

当您使用引号时,您将/tmp/attach/*传递给file命令,而不仅仅是一个文件名。