내 파일은 import/images 디렉터리에 있습니다.
Documents\ProductImages\1.jpg
Documents\ProductImages\2.jpg
Documents\ProductImages\3.jpg
파일 이름에서 어떻게 Documents\ProductImages\
제거할 수 있나요?
답변1
다음을 시도해 볼 수 있습니다.
for i in 'Documents\ProductImages\'*.jpg; do mv -n -- "$i" "${i##*\\}"; done
확장은 ${i##*\\}
패턴과 일치하는 가장 긴 접두사를 제거합니다. 여기서는 마지막 백슬래시까지의 모든 항목을 다른 백슬래시로 이스케이프해야 합니다.
답변2
rename
시스템에 하나가 있다면 일반적으로 이런 종류의 작업에 적합한 도구입니다.
두 가지 가능한 버전이 있다는 것을 알고 있습니다. 구문은 다르지만 둘 다 귀하의 예에서 작동합니다.
Red Hat 시리즈에 일반적으로 배포되는 버전은 다음과 같습니다.
rename 'Documents\ProductImages\' '' *.jpg
다른 버전에서는 이 작업을 수행할 수 있습니다.
rename 's/.*\\//' *.jpg
이는 마지막 부분 이후의 부분만 유지하려고 한다고 가정합니다 \
. 좀 더 구체적으로 알고 싶다면:
rename 's/^Documents\\ProductImages\\//' *.jpg