仅当目录包含文件时,如何将其向上移动一级。一些提示会有帮助。谢谢!
提升一级的示例:
├── AAA
│ └── AAA1
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
所以最终结果是这样的:
├── AAA1
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
这是提升一级的另一个示例:
├── AAA
│ └── BBB
│ └── DDD
│ └── 001.jpg
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
所以最终结果是这样的:
├── BBB
│ └── DDD
│ └── 001.jpg
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
要忽略的示例,因为文件(和子目录)已经低于一级:
├── BBB
│ ├── CCC
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
快速而肮脏的解决方案:
#!/bin/bash
for d in /mnt/g/test/* ; do
if [[ -n $(find "$d" -maxdepth 1 -type f) ]]
then
echo ""
else
find "$d" -mindepth 1 -type d -execdir mv "{}" ./.. \;
fi
done
find /mnt/g/test/* -type d -empty -delete