Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Переименование папок при помощи команды Find  (Прочитано 311 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Profy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Здравствуйте, подскажите пожалуйста как переименовать (добавить суффикс к имени, ".dir") ко всем папкам находящиеся в каталоге и во всех его под каталогов, с максимальной глубиной.

Есть структура
Код: (html5) [Выделить]
folder01/
folder01/dir01/
folder01/dir02/
folder02/
folder02/dir01/
folder02/dir02/

После выполнения команды хочу получить результат:
Код: (html5) [Выделить]
folder01.dir/
folder01.dir/dir01.dir/
folder01.dir/dir02.dir/
folder02.dir/
folder02.dir/dir01.dir/
folder02.dir/dir02.dir/

Не понимаю почему не срабатывает команда:
Код: (bash) [Выделить]
find * -type d -exec mv {} {}.dir \;
В результате получаю переименование папок только верхнего уровня folder0N.dir, вложенные папки остаются без изменений, при этом выдается ошибка, что имя уже существует... чтоб избежать ошибок выполнения дополнил команду.
Код: (bash) [Выделить]
find * -type d -maxdepth 0 -exec mv {} {}.dir \;
Кто-нибудь может подсказать как дополнить команду чтоб получить описанный выше результат.
« Последнее редактирование: 09 Ноябрь 2020, 23:53:19 от Azure »

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Попробуйте добавить парамметр -depth
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн valrust

  • Активист
  • *
  • Сообщений: 285
    • Просмотр профиля
Если нужно в глубину на 4 уровня

for level in 4 3 2 1
do
find ./ -maxdepth $level -mindepth $level -type d -exec mv '{}' '{}'.dir \;
done

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4722
  • Capture the truth
    • Просмотр профиля
если много уровней, чтобы не перечислять:
for level in {4..1}
...
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Radeon R7 260X :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

 

Страница сгенерирована за 0.101 секунд. Запросов: 25.