Существуют некоторые файлы и папки, содержащие слово apple
.
Как,
Root directory = AppleWorld
->AppleStore -> apple.png, appleStore
->StoreOfApple -> apples -> peaches.png apples.jpg
Я хочу сделать все apple
кому: orange
Таким образом, результат должен быть
Root directory = OrangeWorld
->OrangeStore -> orange.png, orangeStore
->StoreOfOrange-> oranges -> peaches.png oranges.jpg`
Так, должно быть по крайней мере 2 операции для apple
и Apple
кому: orange
и Orange
Я попробовал все rename
команды.
Например, они
find ./ -execdir rename 's/Apple*/*Orange*/' '{}' \;
find ./ -iname 'Apple*' -execdir mv -i '{}' 'Orange*' \;
но не работал. Что я могу сделать?
Каталог изменения к вершине дерева каталогов, которое Вы хотите рассматривать (меняют имена каталогов и файлов).
cd top-of-target-directory-tree
Затем выполните следующие команды, пробный прогон, чтобы проверить и затем сделать это, если проверка выглядит хорошей,
find . -depth -execdir rename -n 's/Apple/Orange/;s/apple/orange/' "{}" \;
find . -depth -execdir rename 's/Apple/Orange/;s/apple/orange/' "{}" \;
$ find
.
./Apple3
./Apple3/Apple4
./Apple3/apple4.1
./Apple3/Apple4/apple5
./apple1
./apple2
$ find -type d
.
./Apple3
./Apple3/Apple4
$ find -type f
./Apple3/apple4.1
./Apple3/Apple4/apple5
./apple1
./apple2
Пробный прогон
$ find . -depth -execdir rename -n 's/Apple/Orange/;s/apple/orange/' "{}" \;
rename(./apple4.1, ./orange4.1)
rename(./apple5, ./orange5)
rename(./Apple4, ./Orange4)
rename(./Apple3, ./Orange3)
rename(./apple1, ./orange1)
rename(./apple2, ./orange2)
Сделайте это
$ find . -depth -execdir rename 's/Apple/Orange/;s/apple/orange/' "{}" \;
Проверьте его
$ find
.
./orange1
./Orange3
./Orange3/Orange4
./Orange3/Orange4/orange5
./Orange3/orange4.1
./orange2