Использование Bash
Допустим, у меня есть несколько файлов, случайно размещенных в родительском каталоге ~/src
, я хочу получить все файлы, соответствующие определенному суффиксу, и переместить (или скопировать) их в ~/dist
каталог.
Для этого предположим, что все имена файлов имеют следующее соглашение об именах:
<filename_prefix>.<filename_suffix>
Я обнаружил, что это был быстрый способ получить все файлы с определенными данными filename_suffix
и поместить их в папку dist:
mkdir ~/dst
find source -name "*.xxx" -exec mv -i {} -t ~/dst \;
Теперь шаг вперед ... как я могу использовать выходные данные find, в этом случае filename
, и использовать filename_prefix
для создания каталога с тем же именем ~/dist
и затем переместить (или скопировать) все файлы с этим префиксом в соответствующий каталог?
mkdir ~/dst
find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \;
По сути, как мне изменить вышеуказанную команду (или, возможно, использовать другую команду), чтобы создать структуру, подобную этой
(ВЫВОД)
~/dist/people/people.xrt
~/dist/games/games.xrt
~/dist/games/games.moo
~/dist/games/games.ini
~/dist/monkeys/monkeys.ini
~/dist/monkeys/monkeys.xrt
из дерева каталогов, как это?
(ВХОД)
~/src/xrt/people.xrt
~/src/xrt/games.xrt
~/src/conf/games.ini
~/src/pack/monkeys.xrt
~/src/e344/games.moo
~/src/e344/monkeys.moo
~/src/en-us/monkeys.ini