|
|
1
6
你可以换一个
find srcdir -name '*.mp3' -printf '%P\n' |
while read i; do
j="${i//\// - }"
cp -v "srcdir/$i" "dstdir/$j"
done
在没有外壳的情况下
find srcdir -name '*.mp3' -printf '%P\n' |
sed -e 'p;s:/: - :g' |
while read i; do
read j
cp -v "srcdir/$i" "dstdir/$j"
done
对于另一种方案,GNU
find srcdir -name '*.mp3' -exec cp -v --backup=numbered {} dstdir/ \;
|
|
|
2
2
类似bash的伪代码:
|
|
|
3
2
|
|
|
4
1
我倾向于用一个简单的脚本来实现这一点,而不是试图放在一个命令行中。 例如,在python中,在目录中执行遍历()相对简单,将找到的每个mp3文件复制到一个自动递增的不同目录中。 如果你想变得更花哨,你可以有一个现有文件名的字典,只需在重复项后附加一个数字。(字典的索引是文件名,值是到目前为止找到的文件数,它将成为你的后缀) |
|
|
5
1
|
|
|
6
1
伪代码:
|
|
|
7
1
在python中:要实际移动文件,请更改debug=False
|
|
|
8
1
由于您不关心重复文件的命名方式,请在移动时使用“备份”选项:
|
|
|
Plankt0n · Shell,执行一个需要逐一遍历多个值的命令 1 年前 |
|
|
Fin · 如何使用bash从表中提取数据 1 年前 |
|
|
aenagy · Bash声明不喜欢带空格的值 1 年前 |
|
PkDrew · AND运算符“&”在“&tee”中的作用是什么? 1 年前 |
|
|
elbarna · 正则表达式仅排除小写字符串,但保存包含大写的字符串 1 年前 |
|
Harry · 使用“$!”获取后台作业的pid 1 年前 |
|
|
nmr · 使用来自另一个shell脚本的if语句的返回码函数 1 年前 |
|
minseong · Git sed忽略二进制文件 2 年前 |
|
|
Jesper.Lindberg · 检查参数是否包含null 2 年前 |