Вероятно, самое простое решение:
$ mv /usermanagement/usermanagement/* /usermanagement/ && rmdir /usermanagement/usermanagement
Оператор find
ищет в текущем каталоге и его подкаталогах -все файлы, оканчивающиеся на .sh
, и печатает их по одному файлу в строке.
Оператор s
оператора sed
заменяет совпадающие подстроки чем-то другим. Синтаксис s<delimiter>regex<delimiter>replacement<delimiter>
. Обычно /
используется как разделитель , но здесь используется #
.
Замена в обоих операторах sed
является пустой строкой.
Следовательно, первый оператор отсекает все до последнего /
в имени файла (, т.е. подкаталог -). Второй оператор отсекает суффикс .sh
имени файла.
Файл a/subdir/hierarchy/my_script.sh
будет напечатан как my_script
.