我想将所有以“_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
程序。