cerca e rinomina e mv tutti i file da directory e sottodirectory

Oct 10 2020

ho molti file 30k directories, 21k filesall'interno di directory e sottodirectory di txtfile con lo stesso nome

     ├── cases__in_africa
        │   ├── 2020/10/01.txt
        │   ├── 2020/10/02.txt
        │   ├── 2020/10/03.txt
        │   └── 2020/10/04.txt
        ├── death_in_africa
        │   ├── 2020/10/01.txt
        │   ├── 2020/10/02.txt
        │   ├── 2020/10/03.txt
        │   └── 2020/10/04.txt
2926 directories, 21646 files

Voglio cercare tutti i file all'interno di molte sottodirectory e rinominarli con un altro nome univoco per spostarli in un'altra directory.

Questo comando non mostra i file duplicati

find . -name "*.txt" -exec mv  "{}" ./all \;

Risposte

1218985 Oct 10 2020 at 14:19

Se stai cercando una denominazione sequenziale, puoi farlo in questo modo partendo dal presupposto che la directory di destinazione allesista nella tua directory corrente .:

for file in $(find ./ -type f -name "*.txt"); do ((count++)) ; mv $file ./all/${count}.txt; done
ben Oct 12 2020 at 14:38

lo trovo utile https://askubuntu.com/questions/1003554/how-to-rename-all-jpg-files-in-all-subdirs-wich-contains-dash-in-linux

find -name '*.txt' -exec bash -c 'mv  "{}" "$RANDOM.txt"' \;