1

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

/home/user/source/

и создать символические ссылки на эти файлы в другой папке с другим расширением файла. Итак, я начну с этой структуры папок:

/home/user/source/folder1/random_file_name.bin
/home/user/source/folder2/random_file_name.bin
/home/user/source/folder3/random_file_name.bin
...

И я хотел бы создать символические ссылки на файлы bin, например:

/home/user/dest/folder1.txt -> /home/user/source/folder1/random_file_name.bin
/home/user/dest/folder2.txt -> /home/user/source/folder2/random_file_name.bin
/home/user/dest/folder3.txt -> /home/user/source/folder3/random_file_name.bin
...

Могу ли я сделать это только в одном цикле, или я должен просканировать каждую папку "источника", чтобы извлечь имя папки, затем выполнить цикл в каждой папке, чтобы найти файл bin в каждой папке? В папке только один bin-файл, кстати, со случайным именем.

Разве есть способ сделать это с помощью команды "найти"?

1 ответ1

1
for d in $(find source -type d); do ls $d/*.bin 1>/dev/null 2>&1 && ln -s $d/*.bin target/$(basename $d).dat;done

В замедленном режиме:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .