1
nybux 2019-10-17 13:13:48 +08:00 1
cd father && find | xarg -n 1 -I {} cp {} ..
|
3
ik 2019-10-17 13:21:47 +08:00 via iPhone
xargs
|
4
yorks 2019-10-17 13:26:40 +08:00 1
cd father
for f in */*.jpg ; do echo $f; rsync -b $f .;done |
5
jamfer OP @yorks 新文件把旧文件覆盖了,可能需求没说清楚,最后生成的 1.jpg ,2.jpg ,3.jpg... 要按照文件夹的顺序顺延。
比如 61/ 里边是 1.jpg ,2.jpg ,3.jpg ,62/里边也是 1.jpg ,2.jpg ,3.jpg 最后生成的应该是 1.jpg ,2.jpg ,3.jpg ,4.jpg ,5.jpg ,6.jpg 或者能生成 61-1.jpg ,61-2.jpg ,61-3.jpg ,62-1.jpg ,62-2.jpg ,62-3.jpg 这样也行。 |
6
hugee 2019-10-17 13:50:53 +08:00 via Android
就十几个文件夹。用 tc 手动操作两步就完成了,还需要写什么脚本?
|
8
Chewbacca 2019-10-17 14:11:23 +08:00 1
cd father && find | rename "s#\./## && s#/#-#g unless -d"
|
9
jasonyang9 2019-10-17 14:11:36 +08:00
思路:递归列出所有子目录中的.jpg ,写到一个临时文件,用脚本移动每个文件到目标目录,同时重命名为 序号 或 行号 或 子目录名-序号 形式。。。
|
10
scukmh 2019-10-17 14:33:17 +08:00 1
cd father
for f in */*.jpg ; do echo $f;prefix=`echo $f | cut -d'/' -f1`;filename=`echo $f | cut -d'/' -f2`; echo $filename;newfilename=$prefix"-"$filename; echo $newfilename; cp $f $newfilename;done |
11
wangweiggsn 2019-10-17 14:34:40 +08:00
windows 会,linux 不会,哈哈。
用 excel 辅助写代码也行,A 列写所有原来的文件名,B 列用公式加工成想要的文件名,A 列前插入一列写 move 或 ren 即可。 |
12
lululau 2019-10-17 14:41:22 +08:00
zsh: cd father && zmv '(*)/(*)' '../$1-$2'
|
14
gshao666666 2019-10-18 17:05:15 +08:00
cd father && for i in */*.jpg;do cp $i `echo $i|awk -F/ '{print $1"-"$2}'`; done
|