Teniendo la siguiente jerarquía de archivos:
dir
├── dirA
│ └── snapshot
│ └── subdir1
│ └── file1
└── dirB
└── snapshot
└── subdir2
└── file2
Quiero mover archivos de cada directorio de instantánea/subdirectorio al directorio principal de la instantánea con un solo comando. Eso sería:
dir
├── dirA
│ └── file1
│ └── snapshot
│ └── subdir1
└── dirB
└── file2
└── snapshot
└── subdir2
Lo intenté mv dir/*/snapshot/*/* ../../
, pero como la parte de destino ../../
es relativa al directorio de trabajo, obviamente no funciona.
¿Es posible con comandos bash (ya que nunca escribí una sola línea de script bash)?
Respuesta1
Según la aguda observación de @Don_Christ, esta respuesta se editó guardando así una subcapa:
for i in dir/*/snapshot; do
mv "$i"/*/* "$i"/..
done