Я пытаюсь переместить файлы, вложенные в подкаталоги, на один уровень. Я нахожусь в терминале os x, и я новичок в bash. я уверен, что это просто, я просто не знаю, как это сделать.перемещение файлов в поддиректориях вверх один (и * только * один) уровень
я хочу, чтобы изменить файловую структуру, которая выглядит следующим образом:
~/container
/1-A
LEVEL 1 - 000.jpg
LEVEL 1 - 001.jpg
LEVEL 1 - 002.jpg
/1-B
/2-A
LEVEL 2 - 007.jpg
LEVEL 2 - 008.jpg
LEVEL 2 - 009.jpg
/1-C
LEVEL 1 - 003.jpg
LEVEL 1 - 004.jpg
LEVEL 1 - 005.jpg
LEVEL 1 - 006.jpg
/1-D
/2-C
LEVEL 2 - 010.jpg
LEVEL 2 - 011.jpg
LEVEL 2 - 012.jpg
LEVEL 2 - 013.jpg
LEVEL 2 - 014.jpg
/1-E
LEVEL 1 - 015.jpg
LEVEL 1 - 016.jpg
LEVEL 1 - 017.jpg
/1-F
/2-B
/3-A
LEVEL 3 - 018.jpg
LEVEL 3 - 019.jpg
LEVEL 3 - 020.jpg
LEVEL 3 - 021.jpg
на тот, который выглядит следующим образом:
~/container
/1-A
LEVEL 1 - 000.jpg
LEVEL 1 - 001.jpg
LEVEL 1 - 002.jpg
/1-B
LEVEL 2 - 007.jpg
LEVEL 2 - 008.jpg
LEVEL 2 - 009.jpg
/2-A
/1-C
LEVEL 1 - 003.jpg
LEVEL 1 - 004.jpg
LEVEL 1 - 005.jpg
LEVEL 1 - 006.jpg
/1-D
LEVEL 2 - 010.jpg
LEVEL 2 - 011.jpg
LEVEL 2 - 012.jpg
LEVEL 2 - 013.jpg
LEVEL 2 - 014.jpg
/2-C
/1-E
LEVEL 1 - 015.jpg
LEVEL 1 - 016.jpg
LEVEL 1 - 017.jpg
/1-F
/2-B
LEVEL 3 - 018.jpg
LEVEL 3 - 019.jpg
LEVEL 3 - 020.jpg
LEVEL 3 - 021.jpg
/3-A
я попробовал:
find ~/container -mindepth 3 -type f -exec mv {} . \;
и
find ~/container -mindepth 3 -type f -exec mv {} .. \;
, но они перемещают файлы по отношению к корневому каталогу, а не к каталогу, в котором находится файл. Другими словами, они перемещают файлы слишком далеко. я хочу, чтобы они поднялись ТОЧНО на один уровень, но с глубоким вложением, с которого они должны начать.
Может ли кто-нибудь помочь?
спасибо! Тем не менее, он все еще не работает для меня. когда я пытаюсь, я получаю это сообщение: 'xargs: незаконный вариант - i использование: xargs [-0opt] [-E eofstr] [-I replstr [-R замены]] [-J replstr] [- L number] [-n number [-x]] [-P maxprocs] [-s size] [utility [argument ...]] ' –
Возможно, вы используете старшие xargs. Попробуйте 'xargs -I {} mv" {} "$ (dirname" {} ")/..' –
цикл while делает трюк. большое спасибо! если вы согласны, мне бы хотелось узнать, как работает синтаксис «$ (dirname« $ file »)/..». –