Есть ли команда для копирования музыкальных файлов по порядку?
Мне нужно скопировать MP3-файлы, которые находятся в папках с помощью « Artist - Album », на USB-накопитель.
MP3-файлы должны быть скопированы по порядку, например, 01 Can You Feel It.mp3
должно быть скопировано до 02 Skyway.mp3
.
Этот фрагмент кода должен делать то, что вы ищете. Измените часть sort
, чтобы изменить сортировку по вкусу.
for i in "$(ls *.mp3 | sort)"; do cp "$i" "/destination/$i"; done
ETA: Это может работать только для одного каталога за раз, но вы можете попробовать ls -R
, хотя я не знаю, будет ли это копировать рекурсивно.
Если Вы не можете найти, что какое-либо готовое к использованию программное обеспечение делает это, можно очень легко записать тот.
В Python, сценарии для рекурсивного копирования всех файлов с там соответствующими папками к новой папке в порядке, мог быть похожим на это:
#/usr/bin/env python
import os
import sys
import shutil
try:
from_path = os.path.expanduser(os.path.expandvars(sys.argv[1]))
to_path = os.path.expanduser(os.path.expandvars(sys.argv[2]))
except:
print "Usage: copyinorder <from path> <to path>"
exit()
if not os.path.exists(to_path) or not os.path.exists(from_path):
exit("Error: both paths must exist.")
for dir_path, dir_names, file_names in os.walk(from_path):
if file_names:
new_dir_path = os.path.join(to_path, os.path.relpath(dir_path, from_path))
if not os.path.exists(new_dir_path):
os.makedirs(new_dir_path)
for name in sorted(file_names):
dest = os.path.join(new_dir_path, name)
src = os.path.join(dir_path, name)
shutil.copyfile(src, dest)
print "copied {0} \n to {1}".format(src, dest)
Вы могли просто сохранить его где-нибудь (например, как "copyinoder"), сделать его исполняемым файлом (например. chmod +x copyinorder
) и выполненный это как это:
copyinorder ~/Music/DavidBowie /media/N900/Music/
Обратите внимание, что в этом случае папка "DavidBowie" не будет воссоздана.
Отметьте также, это, если файлы так приятно не называют как в Вашем примере, то sorted
не мог бы быть порядок, который Вы хотели.
Вы не можете копировать файлы по порядку с помощью командной строки или nautilus. Но вы можете использовать Midnight Commander, чтобы скопировать некоторые файлы по порядку. Установите его на терминал с помощью этой команды:
sudo apt-get install mc