Как переместить некоторые файлы в родительский каталог?

Я хочу вытащить все mp3-файлы, которые случайно попали в папку flac, из них, в их родительскую папку.

Не должно иметь значения, насколько глубоки папки, Я просто хочу переместить соответствующие файлы ровно на один каталог вверх.

Вот как я выбираю свои файлы:

find . -path "*/flac/*" -name '*.mp3'

Это работает из моей музыкальной папки, но я застрял здесь. Все решения, которые я нашел, либо перемещают файлы в родительскую папку текущей папки, либо требуют некоторой фиксированной структуры.

13
задан 22 December 2017 в 20:13

1 ответ

Try:

find . -path "*/flac/*" -name '*.mp3' -execdir mv -t ../ {} +

Как это работает

  1. find .

    Запустить команду поиска, работающую с текущим каталогом.

  2. -path "*/flac/*"

    Выбрать только файлы с flac в своем пути

  3. -name '*.mp3'

    Выбрать только файлы с расширение .mp3.

  4. -execdir mv -t ../ {} +

    Для всех найденных файлов выполните команду mv из каталога, в котором находится файл, и переместите файл в родительский каталог.

    В дополнение к упрощению этой конкретной задачи, опция -execdir также более безопасна, чем традиционная опция -exec.

Упрощение

find . -path "*/flac/*.mp3" -execdir mv -t ../ {} +
24
ответ дан 22 December 2017 в 20:13

Другие вопросы по тегам:

Похожие вопросы: