내 NAS에는 bash 쉘이 제한되어 있고 파일 이름에 char이 포함된 파일이 많이 있습니다 ~
. 예를 들어, 2018/10/example~1.jpg
이동하고 이름을 allFiles/2018-10-example_1.jpg
.
를 사용하는 대신 ~
파일 이름에 _
경로를 으로 바꾸고 추가해야 했습니다 .-
/
저 좀 도와 주 시겠어요?
.jpg
// 확장자를 가진 PS 전용 .png
파일.mov
답변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"를 작업하려는 다른 파일 확장자로 바꾸고 반복하세요.