恢复后我有成千上万的文件没有扩展(主要是图片).我需要按文件类型将它们分类到单独的文件夹中(必须在排序过程中创建文件夹).我可以使用“file”命令在
linux中确定filetype.有人有bash脚本吗?
例如:初始目录包含文件:001,002,003,004.排序后应为3个目录:
‘jpeg’包含001.jpg,003.jpg; ‘tiff’包含002.tiff,’others’包含004.
解决方法
此答案不会为每个文件多次执行文件命令,这是不必要的
file -N --mime-type -F"-&-" * | awk -F"-&-" 'BEGIN{q="\047"} { o=$1 gsub("/","_",$2);sub("^ +","",$2) if (!($2 in dir )) { dir[$2] cmd="mkdir -p "$2 print cmd #system(cmd) #uncomment to use } files[o]=$2 } END{ for(f in files){ cmd="cp "q f q" "q files[f]"/"f".jpg" q print cmd #system(cmd) #uncomment to use } }'
同样,可以使用关联数组使用bash4脚本完成.