Замена для DOS копирует команду с помощью xcopy

В DOS существует команда

xcopy /s *.mp3 ..\TEMP2

Как я могу сделать это в Ubuntu?

cp -r *.mp3 ../TEMP2

скопирует рекурсивно все mp3 файлы, к сожалению, без пути из-за *.mp3 фильтр.

cp -r *.* ../TEMP2

скопирует путь, но не может быть ограничен mp3 файлами

Я взглянул на rsync, но я не получаю его.

6
задан 30 August 2011 в 23:44

2 ответа

Питание инструментов в 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
8
ответ дан 23 November 2019 в 07:29

Существует несколько опций, но ни один не действительно прост, я - испуганный …

rsync

rsync -r --include="*/" --include="*.mp3" --exclude="*" --prune-empty-dirs . ../TEMP2

Это говорит для исключения всех файлов (exclude="*"), но изучать все каталоги (include="*/") и включать все mp3 файлы (include="*.mp3"). Если Вы не хотите копировать каталоги, не содержащие какие-либо mp3 файлы, кроме того, --prune-empty-dirs опция необходима.

zip

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 файлами

3
ответ дан 23 November 2019 в 07:29

Другие вопросы по тегам:

Похожие вопросы: