Usando o bash:
#! /bin/bash
rename_count ()
{
count=1
for i in *
do
new="$count"
mv "$i" "$new"
# if a directory, recurse into it.
[[ -d "$new" ]] && (cd "$new"; rename_count "$new")
((count++))
done
}
shopt -s nullglob
cd ""
rename_count ""
Inicialmente:
$ tree foo
foo
├── a
│ ├── d
│ │ └── g
│ ├── e
│ │ └── g
│ └── f
│ └── g
├── b
│ ├── d
│ │ └── g
│ ├── e
│ │ └── g
│ └── f
│ └── g
└── c
├── d
│ └── g
├── e
│ └── g
└── f
└── g
12 directories, 9 files
Então:
$ ./foo.sh foo
$ tree foo
foo
├── 1
│ ├── 11
│ │ └── 111
│ ├── 12
│ │ └── 121
│ └── 13
│ └── 131
├── 2
│ ├── 21
│ │ └── 211
│ ├── 22
│ │ └── 221
│ └── 23
│ └── 231
└── 3
├── 31
│ └── 311
├── 32
│ └── 321
└── 33
└── 331
12 directories, 9 files