将某些文件从指定的子目录复制到单独的子目录中

将某些文件从指定的子目录复制到单独的子目录中

我想将所有以“_CSF”结尾的子目录中的所有 .fastq 文件复制到另一个已创建的子目录 dir1_CSF 中。

我了解如何复制某些文件,但不了解如何从某些目录复制。

刚接触 shell 脚本,如果能提供一些帮助将会非常有用。

答案1

使用 shell,你可以这样做:

find *_CSF -type f -iname "*.fastq" -exec cp {} dir1_CSF/ \;

答案2

将 DIR 设置为顶级目录,将 TARGET 设置为目标目录。然后运行:

find $DIR \( -type d -name "$TARGET" -prune \) -o \
\( -type f -name "*.fastq" -exec cp -t "$TARGET" {}  + \)

是的,就是这个命令。这是假设 GNU find 和 GNU fileutils为这些情况cp提供了方便的-t参数。

怎么运行的

find命令以$DIR(无论您将其设置为什么)开头,查找与您的扩展名匹配的所有文件(但不包括$TARGET目录下的任何文件)。然后它将所有这些文件名传递给cp程序。

相关内容