-1

У меня есть музыкальный каталог на 5 уровне глубины, в каждой папке есть файлы с музыкой и изображениями, а также скрытая подпапка с именем .unwanted. Я хочу переместить скрытые файлы из папок с именем .unwanted, на один уровень вверх в соответствующую родительскую папку, и если имя файла уже существует, то есть последовательное имя. Его 90 ГБ, 9000 музыкальных файлов и невозможно сделать это вручную ..Я новичок в bash, то, что я сделал, я скопировал и прошёл некоторый код, меняя только имя папки. Это выглядит так,

$ найти. -ipath ".unwanted/.*" -type f -print0 | xargs -0 -I {} sh -c 'mv "{}" "$(dirname" {} ")"/..'

Но получил ошибки 'нет такого каталога

[структура Дир А.]

1 ответ1

0

Следующее должно делать то, что вы хотите. У вас должен быть абсолютный путь к папке с музыкой в команде поиска. Не используйте точку. Опция -n в mv нестандартна, но предотвратит перезапись файлов.

    find /absolute/path/to/music/folder -type d -name ".unwanted" -exec ksh -c 'cd "{}"; mv -n ./* ../' \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .