У меня есть каталог: ../Music
с большим количеством музыкальных файлов в множеством подкаталогов.
Как мне переместить все файлы в подкаталогах в другой каталог?
Таким образом, я только хочу переместить файлы, я не хочу сохранить структуру подкаталога.
Предполагая, что в текущем каталоге есть подпапки, замените TARGET_DIR следующим оператором, который его использует:
find . -name '*.mp3' -exec mv {} TARGET_DIR \;
Попробуйте:
cd ../Music
for i in `ls -Q`; do mv $i/* /Path/To/Some/Other/Directory; done
Я бы предложил использовать cp
вместо mv
, чтобы проверить, работает ли он нормально или нет. и если он работает нормально, просто удалите каталог ..Music
Редактировать: добавлено -Q
(и нужно добавить это объяснение, чтобы выйти за пределы шести символов)
(cd ~/Music ; tar cf - ) | (cd /path/to/other/directory; tar xf -)
Вы также можете использовать Rhythmbox, Banshee или аналогичное программное обеспечение. Они могут сканировать ваши музыкальные каталоги.
Вы можете выбрать сохранение каталога или (в вашем случае) программное обеспечение может переместить файлы в каталог rhythmbox / banshee, который устранит иерархию, как вы хотели.
Затем
cp /target/directory/* /desination/directory/ -r
Затем удалите оригинал, если он был успешным.
Первый ответ правильный, но более простой способ сделать это, если у вас есть только один слой подкаталогов, это:
mv ../Music/*/*.mp3 [insert target dest here]