파일이 포함된 경우에만 디렉터리를 한 수준 위로 이동하는 방법입니다. 몇 가지 팁이 도움이 될 것입니다. 감사해요!
한 단계 위로 이동하는 예:
├── 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