Если вам не нужен рекурсивный поиск, тогда должно работать простое расширение bash brace
cp -t /location/you/choose/ /path/to/A/{B,C,D}/*.deb
. Если вы хотите рекурсивно искать во всех подкаталогах A, то, вероятно, наиболее переносимым способом будет
find /path/to/A -name '*.deb' -exec cp -t /location/you/choose/ {} +
. Если ваша оболочка его поддерживает, вы также можете использовать опцию оболочки globstar
. сделать cp
рекурсивным без использования find
- типа shopt
или help shopt
в приглашении оболочки для получения дополнительной информации. Если вам нужно исключить определенные подкаталоги, вы можете добавить -prune
в команду поиска.
Как всегда, вам нужно заранее подумать о том, что вы хотите сделать в случае неуникальных имен файлов - вы можете добавить -n
или --no-clobber
к команде cp
или использовать опцию --backup=numbered
. В случае файлов deb это, вероятно, не имеет значения, поскольку (за исключением повреждения файлов) любые неуникальные имена файлов должны соответствовать точным дубликатам файлов.
Не похоже, что ты что-то пробовал, но все равно. Вот строка, man find
будет говорить, если вы действительно заинтересованы.
find /path/to/A -name "*.deb" -exec mv {} /path/to/new_directory \; # Moves
find /path/to/A -name "*.deb" -exec cp {} /path/to/new_directory \; # Copies
Переместит файлы .deb из A (рекурсивный поиск) в new_directory. Кстати, это больше связано с * nix, чем с Ubuntu.
cp
вместо mv
... Так или иначе.
– Ante
07.05.2020, 02:22