2016-11-03 38 views
0

我想根据每个目录包含的子目录数重命名一组目录。例如,如果“A”目录包含“B”,“C”和“D”子目录,并且“B”包含“E”和“F”,而“C”仅包含“G”和“ D“只包含”H“,然后将”B“重命名为”m_B“(m表示多个)。”C“和”D“保持不变。根据每个目录在ubuntu中包含的子目录数重命名一组目录

回答

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子句。

+0

这个脚本正常运行fine.nice解释,但我的脚本应该逐个读取“B”,“C”和“D”(逐渐使用循环),并将“B”重命名为“m_B”而“C”和“D”保持不变。在$文件 (ls -l命令| grep的^ d |切-d “” -f 9) 做 TOTAL = $(LS -1 $文件| grep的: – Rupam

+0

其确定,只添加一个for循环这样的^ d | WC-1) 如果[$ TOTAL -gt 1] 然后 MV “$文件” “M_ $文件” PWD 网络 DONE – AFR

相关问题