Переименование каталогов в зависимости от количества файлов в Linux

У меня такой расклад:

  • d1
    • f1
    • f2
    • f3
  • d2
    • f4
    • f5
  • d3
    • f6
    • f7
    • f8
    • d4
      • f9

Что я хочу сделать, так это переименовать корневые каталоги, чтобы они содержали количество (рекурсивных) файлов, содержащихся внутри. Формат не очень важен, если он не слишком длинный. Я хочу иметь возможность запускать этот скрипт как cron каждый час или около того, чтобы обновлять имена каталогов, поэтому после первого запуска он будет выглядеть так:

  • 3-d1
    • f1
    • f2
    • f3
  • 2-d2
    • f4
    • f5
  • 4-d3
    • f6
    • f7
    • f8
    • d4
      • f9

Потом после второго прогона, может еще несколько файлов будет добавлено и удалено, и теперь это выглядит так:

  • 1-d1
    • f1
  • 4-d2
    • f2
    • f3
    • f4
    • f5
  • 10-d3
    • f6
    • f7
    • f8
    • d4
      • f9
      • f10
      • f11
      • f12
      • f13
      • f14
      • f15

У меня есть следующий скрипт bash, но я не могу понять, как это сделать замена регулярного выражения в имени файла

#!/bin/bash

TARGETPATH=/home/pritchea/test
for CURDIR in `ls -l $TARGETPATH`
do
  if [ -d $TARGETPATH/$CURDIR ]; then
    echo "$CURDIR is a directory"
    FILECOUNT=`find $TARGETPATH/$CURDIR -type f | wc -l`
    echo " and there are $FILECOUNT file(s)";
  fi
done
5
задан Tony P 14 April 2012 в 00:14
поделиться