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

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

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

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

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

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

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

One Solution collect form web for “Перемещение нескольких файлов из нескольких каталогов в исходный адрес”

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

 for i in dir/*/snapshot; do mv "$i"/*/* "$i"/.. done 
  • Переместить папки, не существующие в целевой каталог
  • Msgstr "mv: невозможно перемещаться". на `../general/. ': занято устройство или ресурс"
  • Как найти конкретный файл и переместить его в конкретный каталог?
  • Переместите все файлы из одной папки в другую, на основе списка
  • Я случайно скопировал часть каталога / * to / some /, как мне исправить мою ошибку?
  • Что произойдет, если случайно переместить мягкую ссылку, а затем «/»?
  • Переименовать скрипт bash - false нет такой ошибки файла или каталога
  • сценарий оболочки для перемещения выбранных файлов из одного каталога в другой
  • Как извлечь только «базовое имя» родительского каталога в оболочке?
  • Перемещение определенных файлов в новое место (и добавление времени datettime)
  • перемещение подкаталогов с помощью команды mv
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.