根据目录名称移动文件(Linux / Debian /#!)

时间:2013-09-03 03:42:00

标签: linux file sorting subdirectory

问题:

如何将文件从具有相同名称的多个子目录移动到该名称的单个目录中。名为X的多个目录中的所有文件应该一起移动到一个名为X的目录中。

示例文件结构:

(真正的结构是200-300个目录,在我标记为1,2,3等的级别,下面有不同数量的目录。)

(注意像Group _这样的所有标签都只是 - 标签。实际名称是不规则的。)

  • 磁盘

    • 1

        • 音乐
          • A组
            • 文件
            • 文件
            • 文件
          • B组
            • 文件
            • 文件
            • 文件
    • 2

        • 音乐
          • B组
            • 文件
            • 文件
            • 文件
          • C组
            • 文件
            • 文件
            • 文件
    • 3
        • 音乐
          • C组
            • 文件
            • 文件
            • 文件
          • D组
            • 文件
            • 文件
            • 文件

目标是将名为“Group X”的各个子目录中的文件移动到名为“Group X”的单个目录中,如下所示:

  • 磁盘
    • 1
        • 音乐
          • A组
            • 文件
            • 文件
            • 文件
          • B组
            • 文件
            • 文件
            • 文件
            • 文件
            • 文件
            • 文件
          • C组
            • 文件
            • 文件
            • 文件
            • 文件
            • 文件
            • 文件
          • D组
            • 文件
            • 文件
            • 文件

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以这样做:

dest="Group A"
find -type f | 
grep $dest | 
while read filename
do     
    echo mv $filename ${dest}/$(basename $filename)
done