gpt4 book ai didi

linux - 如何在 bash 上按文件类型将文件分类到文件夹中(使用 'file' 命令)?

转载 作者:IT王子 更新时间:2023-10-29 00:45:02 26 4
gpt4 key购买 nike

恢复后我有数千个没有扩展名的文件(主要是图片)。我需要按文件类型将它们分类到单独的文件夹中(文件夹必须在分类过程中创建)。我可以使用“file”命令确定 linux 中的文件类型。有人有它的 bash 脚本吗?

例如:初始目录包含文件:001、002、003、004。排序后应该是3个目录:'jpeg' 包含 001.jpg, 003.jpg; 'tiff' 包含 002.tiff,'others' 包含 004。

最佳答案

这个答案不会为每个文件多次执行file命令,这是不必要的

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
}
}'

类似地,可以通过使用关联数组的 ba​​sh4+ 脚本来完成。

关于linux - 如何在 bash 上按文件类型将文件分类到文件夹中(使用 'file' 命令)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3902056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com