有没有按顺序复制音乐文件的命令?
我需要通过“艺术家 - 专辑”到 USB 记忆棒。
MP3 必须按顺序复制,例如01 Can You Feel It.mp3
应在 之前复制02 Skyway.mp3
。
答案1
您无法使用命令行或 nautilus 按顺序复制文件。但您可以使用 midnight commander 按顺序复制一些文件。使用以下命令在终端上安装它:
sudo apt-get install mc
答案2
如果您找不到任何现成的软件来执行此操作,您可以非常轻松地编写一个。
在 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
可能就不是您想要的顺序。
答案3
这段代码应该可以满足您的要求。修改该sort
部分以根据喜好改变排序行为。
for i in "$(ls *.mp3 | sort)"; do cp "$i" "/destination/$i"; done
ETA:这可能一次只能对一个目录起作用,但您可以尝试ls -R
,尽管我不知道是否会递归复制。