根据每个目录在ubuntu中包含的子目录数重命名一组目录

时间:2016-11-03 07:21:23

标签: shell ubuntu

我想根据每个目录包含的子目录数重命名一组目录。

例如,如果“A”目录包含“B”,“C”和“D”子目录,“B”包含“E”和“F”,而“C”仅包含“G”和“D” “仅包含”H“。然后”B“应重命名为”m_B“(m表示多个)。”C“和”D“保持不变

1 个答案:

答案 0 :(得分:0)

您可以使用脚本。

您需要做的第一件事就是计算此文件夹的目录数。

ls -l $1 | grep ^d | wc -l 

然后将此值分配给变量:

TOTAL=$(ls -1 $1 | grep ^d | wc -l)

现在您唯一需要做的就是使用if子句进行简单检查

if [ $TOTAL -gt 1 ]
 then
  mv "$1" "m_$1" 
 pwd
fi

因此,检查一个文件夹的最终脚本是:

  #!/bin/bash
  TOTAL=$(ls -1 $1 | grep ^d | wc -l)
      if [ $TOTAL -gt 1 ]
     then
      mv "$1" "m_$1" 
     pwd
    fi

该脚本适用于参数传递的一个文件夹,如果要使用此脚本重命名一组文件夹,请使用for子句。