
내 폴더 구조는 다음과 같습니다.
Photos
|
|---> 2015-08-23
|
|---> IMG_0019.JPG // keep
IMG_0019.JPG.json // toss
IMG_0020.JPG // keep
IMG_0020.JPG.json // toss
IMG_0021.JPG // keep
IMG_0021.JPG.json // toss
metadata.json // toss
2015-08-24
|
|---> IMG_0242.MP4 // keep
IMG_0242.MP4.json // toss
metadata.json // toss
2015-08-25
|
|---> IMG_0243.MOV // keep
IMG_0243.MOV.json // toss
IMG_0243(1).MOV // keep
IMG_0243(1).MOV.json // toss
IMG_0244.PNG // keep
IMG_0019.PNG.json // toss
metadata.json // toss
이것은 계속해서 진행됩니다. 내 목표는 다음과 같은 폴더 구조로 끝나는 것입니다.
Photos
|
|--> IMG_0019.JPG
IMG_0020.JPG
IMG_0021.JPG
IMG_0242.MP4
IMG_0243.MOV
IMG_0243(1).MOV
IMG_0244.PNG
...
나는 이것의 수정된 버전을 만들고 싶었습니다.기사 여기서 각 디렉토리를 반복하고 정규식을 수행하여 가치 있는 파일만 가져옵니다. 다음과 같은 것 :
// get a list of all directories
// loop through directories
// get all contents in directory
// loop through all contents in directory
// determine if file is of value (ie. MP4, PNG, MOV, JPG, etc.)
// move selected file out to parent directory
// remove directory
어떤 도움이라도 주시면 감사하겠습니다.
답변1
예상 결과의 구조에서 .json
. 이렇게 하면 됩니다:
cd Photos
find . -type f ! -name *.json -exec mv {} . \; && rm -rf 2015*
Photos 디렉터리 내부에서 로 끝나지 않는 파일을 찾아 현재 디렉터리 .json
로 이동 .
한 다음 원하지 않는 하위 디렉터리와 파일을 삭제합니다. 또한 rm -ri 2015*
각 디렉터리를 제거하기 전에 메시지를 표시하도록 사용 하거나 , 나머지 파일과 해당 디렉터리를 삭제하기 전에 마음이 바뀔 경우를 대비해 find
및 명령을 별도로 실행할 수도 있습니다.rm