按文件夹名称在目录之间移动子目录

按文件夹名称在目录之间移动子目录

我有一系列子目录,都在一个父目录中,每个子目录的标题如下:

  • 字符串A (日期1) 字符串W [字符串10]

  • 字符串B (日期2) 字符串X [字符串11]

  • StringB (日期3) StringY [String12]

  • 字符串C (日期4) 字符串Z [字符串13]

我还有一个不同的文件夹,里面装满了子目录,每个子目录都有一个唯一的字符串,用于引导来自先前列表的子目录的标题。从上面的例子来看,它会是:

  • 字符串A

  • 字符串B

  • 字符串C

是否有可行的方法将每个扩展标题子目录移动到与其前导字符串匹配的短标题子目录中?

为了清楚起见,我希望的结果是按以下顺序嵌套的文件夹:

  • 字符串 A/字符串 A (日期 1) 字符串 W [字符串 10]

  • 字符串B/字符串B (日期2) 字符串X [字符串11]

  • StringB/StringB (日期3) StringY [String12]

  • StringC/StringC (日期4) StringZ [String13]

答案1

尝试以下脚本

foo="/path/to/folder/containing/short-titled-directories"
bar="/path/to/folder/containing/extended-titled-directories"

for subdir in $foo/*
do
    if [[ -d "$subdir" ]]
    then
        folder_to_move=$(ls $bar | grep "$subdir")
        mv "$bar/$folder_to_move" "$subdir/$folder_to_move"
    fi
done

相关内容