2016-11-03 3 views
0

各ディレクトリに含まれるサブディレクトリの数に応じてディレクトリの名前を変更したいとします。ディレクトリのセットの名前を、各ディレクトリにubuntuに含まれるサブディレクトリの数に応じて変更してください。

たとえば、「A」ディレクトリに「B」、「C」、「D」サブディレクトリが含まれ、「B」に「E」および「F」が含まれ、「C」に「G」および「D」サブディレクトリが含まれ、 「D」には「H」のみが含まれています。「B」は「m_B」(複数の場合はm)に変更する必要があります。

答えて

0

スクリプトを使用できます。

まず、このフォルダのディレクトリ数を数えます。

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

次に変数にこの値を割り当てる:

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

今あなたがする必要がある唯一の事はのための句

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

のであれば、最終的なスクリプトを使用して、簡単なチェックです1つのフォルダをチェックする:

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

このスクリプトを使用してフォルダのセットの名前を変更する場合は、for句を使用して、そのスクリプトが引数で渡された1つのフォルダに対して機能します。

+0

このスクリプトはちゃんと動作していますが、私のスクリプトは "B"、 "C"、 "D"を繰り返し(ループを使用することをお勧めします) 「C」と「D」は同じままです。 – Rupam

+0

そのok、次のようにループを追加してください: $(ls -l | grep^d | cut -d "" -f 9)のファイル用 do TOTAL = $(ls -1 $ファイル| grep^D |トイレ-l) 場合 その後、 MV "$ファイル" "M_ $ファイル" PWD Fiの 済[1 -gt $のTOTAL] – AFR

関連する問題