В DOS существует команда
xcopy /s *.mp3 ..\TEMP2
Как я могу сделать это в Ubuntu?
cp -r *.mp3 ../TEMP2
скопирует рекурсивно все mp3 файлы, к сожалению, без пути из-за *.mp3
фильтр.
cp -r *.* ../TEMP2
скопирует путь, но не может быть ограничен mp3 файлами
Я взглянул на rsync, но я не получаю его.
Питание инструментов в Ubuntu состоит в том, что можно объединить их. Следующая команда находит все .mp3 файлы в текущем каталоге и его подкаталогах, и копирует их в ../TEMP2/
папка, сохраняя пути:
find -iname '*.mp3' -exec install -D {} ../TEMP2/{} \;
find -iname '*.mp3'
- находит все файлы, заканчивающиеся .mp3
(нечувствительный к регистру) и -exec
- выполняет команду для каждого соответствия: install -D {} ../TEMP2/{}
- копирует подобранный файл в ../TEMP/
сохранение пути. ({}
заменяется путем включая имя файла),\;
- концы -exec
командаЕсли Вы хотите получить прогресс, добавить -ls
("список") к команде прежде -exec
. Это может быть помещено после \;
также, но в этом случае имя показывают, будучи скопированным. Примеры:
find -iname '*.mp3' -ls -exec install -D {} ../TEMP2/{} \;
find -iname '*.mp3' -exec install -D {} ../TEMP2/{} \; -ls
Существует несколько опций, но ни один не действительно прост, я - испуганный …
rsync -r --include="*/" --include="*.mp3" --exclude="*" --prune-empty-dirs . ../TEMP2
Это говорит для исключения всех файлов (exclude="*"
), но изучать все каталоги (include="*/"
) и включать все mp3 файлы (include="*.mp3"
). Если Вы не хотите копировать каталоги, не содержащие какие-либо mp3 файлы, кроме того, --prune-empty-dirs
опция необходима.
zip -R archive.zip "*.mp3"
unzip -d ../TEMP2 archive.zip && rm archive.zip
Первая команда создает архив со всеми mp3 файлами, второе разархивировало содержание к целевому каталогу и удаляет архивный файл, если это было успешно.
find . -iname "*.mp3" -exec install -D {} ../TEMP2/{} ";"
Это найдет все mp3 файлы и скопирует их в соответствующий путь в ../TEMP2
каталог, после создания структуры каталогов сначала (install -D
).
Это только имеет смысл, если у Вас есть всего несколько файлов, которые Вы не хотите копировать:
cp -r * ../TEMP2
find ../TEMP2 -type f \! -iname '*.mp3' -delete
Это копирует все и затем удаляет все файлы, которые не являются mp3 файлами