我有文件夹和子文件夹,里面有10K张照片.
现在我需要将所有10K文件放入一个文件夹中.我想用现有的文件名附加文件夹和子文件夹名称,以便文件名对我有意义.
我需要帮助
您可以编写一个快速shell脚本来为您执行此操作.要获取当前文件夹的名称:
pwd|awk -F'/' '{print $NF}'
Run Code Online (Sandbox Code Playgroud)
并获取当前文件夹的父级:
pwd|awk -F'/' '{SL = NF-1; print $SL}'
Run Code Online (Sandbox Code Playgroud)
更新
创建一个如下所示的文件:
#!/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
Run Code Online (Sandbox Code Playgroud)
然后做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
Run Code Online (Sandbox Code Playgroud)
并做到了这一点:
./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
Run Code Online (Sandbox Code Playgroud)
希望这就是你要找的东西.