Você não pode copiar arquivos em ordem com a linha de comando ou nautilus. Mas você pode usar o midnight commander para copiar alguns arquivos em ordem. Instale-o no terminal com este comando:
sudo apt-get install mc
Existe um comando para copiar arquivos de música em ordem?
Eu preciso copiar MP3s que estão em pastas por " Artist - Album " para um pendrive.
Os MP3s devem ser copiados em ordem, por exemplo, 01 Can You Feel It.mp3
deve ser copiado antes de 02 Skyway.mp3
.
Você não pode copiar arquivos em ordem com a linha de comando ou nautilus. Mas você pode usar o midnight commander para copiar alguns arquivos em ordem. Instale-o no terminal com este comando:
sudo apt-get install mc
Se você não encontrar nenhum software pronto para uso para fazer isso, você pode facilmente escrever um.
Em python, um script para copiar recursivamente todos os arquivos com as respectivas pastas para uma nova pasta em ordem, poderia ter esta aparência:
#/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)
Você pode salvá-lo em algum lugar (por exemplo, "copyinoder"), torná-lo executável (por exemplo, chmod +x copyinorder
) e executá-lo da seguinte forma:
copyinorder ~/Music/DavidBowie /media/N900/Music/
Note que, neste caso, a pasta "DavidBowie" não será recriada.
Note também que, se os arquivos não são tão bem nomeados como no seu exemplo, então sorted
pode não ser a ordem que você queria.
Esse pedaço de código deve fazer o que você está procurando. Modifique a parte sort
para alterar o comportamento de classificação a gosto.
for i in "$(ls *.mp3 | sort)"; do cp "$i" "/destination/$i"; done
ETA: Isso pode funcionar apenas em um único diretório por vez, mas você pode tentar ls -R
, embora eu não saiba se isso seria copiar recursivamente.