Как я могу переименовать дерево каталогов в соответствии с деревом, сохраненным в файле?

У меня есть старый файл дерева каталогов, созданный с помощью find . -type d >old.txt. Теперь я хочу переименовать существующее дерево, которое имеет ту же самую структуру, что и старое дерево. Этот вопрос связан с этим

Другими словами: Как я могу преобразовать следующее:

NEW ├── 01 ├── 02 ├── 03 │ ├── 031 │ └── 032 │ └── 0321 | └── 03211 ├── 04 ├── 041 └── 042

конвертировать следующее:

OLD ├── Mercury ├── Venus ├── Earth │ ├── Australia │ └── Asia │ └── Japan | └── Hokkido ├── Mars ├── HellasBasin └── SyrtisCrater

, используя мой old.txt (дерево каталогов) или используя какой-либо другой скрипт, не касаясь каких-либо файлов в каталогах?

1
задан 17 February 2018 в 21:59

2 ответа

Я думаю, что ничего не получится после того, как у вас будет только старое дерево каталогов в качестве файла и нет возможности сопоставить имена новых каталогов со старыми.

Как скрипт узнает, что 01 коррелирует с Mercury или Venus?

. Однако этот ответ Unix StackExchange соответствует точно одному и тому же вопросу, где OP написал сам скрипт Perl, поскольку никто не мог дать ответ.

Но я думаю, что для этого вам понадобятся старые директивы нетронутыми, так как он запускает дерево с опциями

tree --dirsfirst -spugD

2
ответ дан 17 July 2018 в 20:37

Я думаю, что ничего не получится после того, как у вас будет только старое дерево каталогов в качестве файла и нет возможности сопоставить имена новых каталогов со старыми.

Как скрипт узнает, что 01 коррелирует с Mercury или Venus?

. Однако этот ответ Unix StackExchange соответствует точно одному и тому же вопросу, где OP написал сам скрипт Perl, поскольку никто не мог дать ответ.

Но я думаю, что для этого вам понадобятся старые директивы нетронутыми, так как он запускает дерево с опциями

tree --dirsfirst -spugD

2
ответ дан 23 July 2018 в 21:15
  • 1
    Спасибо за вход. Будучи недавним конвертиром в Linux / Unix, я могу показаться очень неосведомленным, но я подумал, что какой-то Linux-гений может придумать какой-нибудь скрипт для соответствия местоположениям каталогов (идентификатор местоположения, если есть что-то в этом роде) и сделать переименование. Оба дерева имеют одинаковое количество каталогов в тех же местах и ​​одну и ту же иерархию. У меня старые папки нетронутыми ... – alien250 19 February 2018 в 16:28
  • 2
    Если у вас старые каталоги, попробуйте сценарий Perl – Robert Riedl 19 February 2018 в 16:37
  • 3
    Спасибо, сэр. Я изучал сценарий. Я все еще надеюсь, что кто-то придумает более простой скрипт bash. – alien250 19 February 2018 в 16:40
  • 4
    хорошо, как я вижу, это не просто. Простите вопрос, но почему бы не скопировать всю папку на новый хост? – Robert Riedl 19 February 2018 в 16:51
  • 5
    Извините за поздний ответ. Да, у меня не будет другого выбора, если это не сработает. Я проведу этот скрипт perl. Спасибо, что нашли время, чтобы помочь мне. – alien250 20 February 2018 в 16:58

Другие вопросы по тегам:

Похожие вопросы: