파일 이름에서 "~" 제거

파일 이름에서 "~" 제거

내 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"를 작업하려는 다른 파일 확장자로 바꾸고 반복하세요.

관련 정보