将文件复制到其他文件夹 - 查找

将文件复制到其他文件夹 - 查找

我必须使用命令“find”将文件复制到具有其类型名称的文件夹中。有很多文件和很多文件夹。我尝试了命令:

find ./find -type f -exec bash -c ' file -b "$1"|cut -d " " -f 1 ' none {} \;

但是当我使用“|”时,我不知道如何使用 mkdir 来创建文件夹。

我想到了两个命令。首先根据文件类型创建文件夹。其次将文件复制到此文件夹。

但是我如何才能创建这个文件夹呢?

答案1

使用文件剪切表达式来确定目录名称:

find . -type f -exec bash -c 'd="../$(file -b "$1"|cut -d " " -f 1)"; mkdir -p "$d"; cp "$1" "$d" ' none {} \;

怎么运行的

  • d=../$(file -b "$1"|cut -d " " -f 1)

    这将找到与文件类型对应的目录名称。我添加了../这些以将它们放在父目录下。您可能希望将它们放在其他地方。

  • mkdir -p "$d"

    如果目录不存在则创建该目录。

  • cp "$1" "$d"

    这会将文件复制到目录。

相关内容