我有文件夹和子文件夹,里面有10K张照片。
现在我需要将所有10K文件放入一个文件夹中。我想用现有的文件名附加文件夹和子文件夹名称,以便文件名对我有意义。
我需要帮助
答案 0 :(得分:7)
您可以编写一个快速shell脚本来为您执行此操作。获取当前文件夹的名称:
pwd|awk -F'/' '{print $NF}'
并获取当前文件夹的父级:
pwd|awk -F'/' '{SL = NF-1; print $SL}'
<强>更新强>
创建一个如下所示的文件:
#!/bin/bash
for f in `find . -name '*jpg'`
do
filename=`echo $f|awk -F'/' '{SL = NF-1; TL = NF-2; print $TL "_" $SL "_" $NF}'`
cp $f newfolder/$filename
done
然后对其进行chmod +x
。在顶级运行脚本。在这种情况下,您需要提前创建目标,新文件夹。
我采用了这个目录结构:
./bar
./bar/baz
./bar/baz/1.jpg
./bar/baz/2.jpg
./bar/baz/3.jpg
./bar/buz
./bar/buz/1.jpg
./bar/buz/2.jpg
./bar/buz/3.jpg
./foo
./foo/baz
./foo/baz/1.jpg
./foo/baz/2.jpg
./foo/baz/3.jpg
./foo/buz
./foo/buz/1.jpg
./foo/buz/2.jpg
./foo/buz/3.jpg
进入这个:
./newfolder/bar_baz_1.jpg
./newfolder/bar_baz_2.jpg
./newfolder/bar_baz_3.jpg
./newfolder/bar_buz_1.jpg
./newfolder/bar_buz_2.jpg
./newfolder/bar_buz_3.jpg
./newfolder/foo_baz_1.jpg
./newfolder/foo_baz_2.jpg
./newfolder/foo_baz_3.jpg
./newfolder/foo_buz_1.jpg
./newfolder/foo_buz_2.jpg
./newfolder/foo_buz_3.jpg
希望这就是你要找的东西。