~
내 NAS에는 제한된 bash 쉘이 있고 파일 이름에 문자가 포함된 많은 파일이 있습니다 . 예를 들어, 에 파일이 있는데 2018/10/example~1.jpg
이동하고 이름을 allFiles/2018-10-example_1.jpg
.
~
를 로 바꾸고 파일 이름 대신 _
으로 경로를 추가해야 합니다.-
/
저 좀 도와 주 시겠어요?
.jpg
/ .png
/ .mov
확장자를 가진 PS 전용 파일
답변1
QNAP는 없지만 그 쉘은 실제로 BusyBox라고 생각합니다. 이것은 BusyBox와 bash 모두에서 작동합니다(Bash를 사용하더라도 설치하려면 find+cut+awk도 필요합니다).
연도 디렉터리(예: "2018")와 "allFiles" 디렉터리가 동일한 수준에 있고 해당 수준이 셸의 현재 작업 디렉터리라고 가정합니다.
find . -name '*.jpg' | cut -c3- | awk '{ newname=$0; gsub(/~/, "_", newname); gsub(/\//, "-", newname); gsub(/^/, "allFiles/", newname); print "mv " $0 " " newname; }'
그러면 모든 .jpg 파일을 이동하는 명령 세트가 생성됩니다. 먼저 명령을 검토하여 합리적인지 확인하세요. 그런 다음 위 명령 끝에 "| sh"를 붙여서 실행하세요.
그런 다음 위의 '*.jpg'를 처리하려는 다른 파일 확장자로 바꾸고 반복하십시오.