Перемещение нескольких файлов из нескольких каталогов в исходный адрес

Имея следующую иерархию файлов:

dir ├── dirA │ └── snapshot │ └── subdir1 │ └── file1 └── dirB └── snapshot └── subdir2 └── file2 

Я хочу переместить файлы из каждого каталога snapshot / subdir в родительский каталог моментального снимка в одной команде. Это было бы:

  • Почему мой ls -help не работает?
  • Удалять файлы в каталоге, которые также находятся в другом каталоге
  • Может ли дерево команд UNIX отображать только каталоги, соответствующие шаблону?
  • Как копировать только файлы в указанный каталог в другую папку
  • Как получить доступ ко второму аргументу из последней команды в истории?
  • Перемещение файлов без расширения с помощью mv
  •  dir ├── dirA │ └── file1 │ └── snapshot │ └── subdir1 └── dirB └── file2 └── snapshot └── subdir2 

    Я пробовал mv dir/*/snapshot/*/* ../../ но поскольку ../../ часть ../../ относится к рабочему каталогу, она явно не работает.

    Возможно ли это с помощью команд bash (поскольку я никогда не писал ни одной строки сценария bash)?

  • использование </ dev / null & в командной строке
  • Выход команды LS в файл
  • Что такое «Unix-способ» для приложения CLI, чтобы сообщить о каких-либо аргументах?
  • Как отформатировать CF-карту с помощью команды терминала?
  • объединить файлы с пронумерованным индексом
  • Как удалить все подкаталоги из каталога?
  • One Solution collect form web for “Перемещение нескольких файлов из нескольких каталогов в исходный адрес”

    Основываясь на внимательном наблюдении @ Don_Christ, этот ответ был отредактирован, тем самым сохраняя подоболочку:

     for i in dir/*/snapshot; do mv "$i"/*/* "$i"/.. done 
    Linux и Unix - лучшая ОС в мире.