1

Mac OS X 10.8.5 を使用しています。コマンドラインでこれを行うのが最も理にかなっていると考えましたが、他の提案は大歓迎です。

さまざまなバックアップのディレクトリがあります。ここには約 45 のバックアップがあり、それぞれの増分ステージが定期的に実行されます。各バックアップ ディレクトリのディレクトリ構造は同じですが、それぞれのトップ/親ディレクトリの名前 (タイム スタンプ) が異なります。例:

2013_9_12_0500/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_12_0600/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_12_0700/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_12_0800/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_12_0900/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_12day/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_13day/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_14day/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders
2013_9_10week/Files/MoreFiles/SomethingElse/Folder/subfolder/morefolders

「サブフォルダー」ディレクトリには、多数のサブディレクトリ自体が含まれています。各「サブフォルダー」ディレクトリ内にあるサブディレクトリの数を数えたい。例:

2013_9_12_0500/Files/MoreFiles/SomethingElse/Folder/subfolder/  =>  884 subdirs
2013_9_12_0600/Files/MoreFiles/SomethingElse/Folder/subfolder/  =>  1423 subdirs
2013_9_12_0700/Files/MoreFiles/SomethingElse/Folder/subfolder/  =>  540 subdirs
2013_9_12_0800/Files/MoreFiles/SomethingElse/Folder/subfolder/  =>  378 subdirs

等...

このコマンドで運が良かった:

 find ./*/*/*/*/*/subfolder -type d | wc -l

問題は、個々のサブフォルダー内の数ではなく、すべての「サブフォルダー」の全体的な合計のみが表示されることです。たとえば、上記のリストの代わりに「13543」。

はい、これを一度に 1 つずつ手動で行うこともできますが、その中で何か新しいことを学ぶ興奮はありましたか? :)

ありがとう、C

4

2 に答える 2

1

やってみませんか

for d in ./*/*/*/*/*/subfolder; do
    printf "%s\t" "$d"
    find "$d" -type d -printf "%i\n" | wc -l
done

コマンドの-printfオプションfindは、ディレクトリ名に改行などがある場合の安全策です。

于 2013-10-15T20:16:57.737 に答える
1

以下の多くのシェナニガンは、フォルダー名のスペースを処理することですが、この関数は出力を生成すると思います...

使用法:countsubdirs PUT/PATH/HERE

countsubdirs(){
    ORIGIFS=$IFS
    IFS=$(echo -en "\n\b")
    DIRS=$(find "$1" -maxdepth 1 -mindepth 1 -type d )
    for D in $DIRS; do echo $D "=>" $(find $D -maxdepth 1 -mindepth 1 -type d | wc -l) subdirs; done
    IFS=$ORIGIFS
}

出力:

temp/hello =>        1 subdirs
temp/ntest 4 =>        0 subdirs
temp/temp =>        0 subdirs
temp/test =>        2 subdirs
temp/test 4 =>        0 subdirs
temp/test3 =>        1 subdirs
temp/tester =>        0 subdirs
temp/xl =>        1 subdirs
于 2013-10-15T18:27:21.753 に答える