Jak masowo zmienić nazwę w OS X z moimi wymaganiami

5

Czy istnieje narzędzie, które może zmieniać nazwy filtrów w wielu podfolderach, a następnie zmieniać nazwy plików w sekwencji?

Na przykład. Wybieram my-pictures zrobi to swoją magią i kolejno zmieni nazwy wszystkich plików we wszystkich podfolderach. Dla każdego nowego podfolderu numeracja jest resetowana na 1.

stara struktura

my-pictures (parent folder)
-- folder1
---- in-costa-rica.png
---- swimming-at-beach-costa-rica.png
-- panama-folder
---- panama-canal.png
---- with-witch-doctor.png

pożądana / nowa struktura

my-pictures (parent folder)
-- folder1
---- 0001.png
---- 0002.png
-- panama-folder
---- 0001.png
---- 0002.png
mrjayviper
źródło

Odpowiedzi:

6

Następujące wiersze w Terminalu powinny załatwić sprawę

for dir in my-pictures/*; do
    if [[ -d "$dir" ]]; then
        cd "$dir"
        i=0
        for file in *; do
            echo mv "$file" $(printf "%04d" $i).png
            (( i=i+1 ))
        done
        cd -
    fi
done

Włożyłem echo instrukcja, aby powstrzymać wykonanie, abyś mógł go przetestować jako pierwszy. Jeśli wyjście wygląda dobrze, po prostu usuń echo i uruchom ponownie.

Zakłada się, że w każdym podfolderze nie ma więcej niż 1000 plików, żadna z plików nie jest już zmieniona, a wszystkie są zdjęciami PNG.

Domyślnie pliki są sortowane według nazwy. Jeśli chcesz sortować według daty, zastąp drugą for oświadczenie z

for file in $(ls -t); do
nohillside
źródło
0

Jeśli możesz to zrobić, wybierając poszczególne podfoldery, jest do tego aplikacja . Może nie zrobić dokładnie tego, czego pragniesz, ale mimo to może zaoszczędzić dużo czasu.

Rish
źródło