根据文件类型对文件进行排序

时间:2016-08-22 17:05:47

标签: linux bash shell zsh

在出现高清问题和一些工作之后,我有一堆文件名为“f1234”,“f1235”等。

我的目标是根据文件类型对这些文件进行排序。例如,我想将所有PDF文件移动到“pdfs”目录中。

对于一个文件,我可以这样做:“file f1234”,如果它是PDF,我可以“mv f1234 pdfs /”。但是我有成千上万的文件...你能帮我用bash或zsh命令一次性排序所有的PDF吗?感谢

1 个答案:

答案 0 :(得分:5)

这里的难点是将file的输出可靠地转换为目录名。我认为最好的候选者可能是文件的mime类型,而不是file的人类可读输出。我使用的东西是:

mkdir sorted
for f in f*
do
  d=$(file -b --mime-type "$f" | tr / -)
  mkdir -p "sorted/$d"
  mv "$f" "sorted/$d/"
done

显然我在对你的文件运行它之前测试了一下,但是非常接近的东西应该有用。