2016-11-03 41 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

相關問題