$file파일 이름의 값을 보유 한다고 가정 하십시오 Dr' A.tif. bash 프로그래밍에서 특수 문자를 $file제거하지 않고 작은 따옴표와 다른 특수 문자를 어떻게 벗어날 수 있습니까?
2014 년 7 월 9 일 업데이트
로 @Gilles에서 요청을 처리 할 수있게하지 않는 코드에 따라 Dr' A.tif:
files=$(find /path/ -maxdepth 1 -name "*.[Pp][Dd][Ff]" -o -name "*.[Tt][Ii][Ff]")
echo "${files}" > ${TEMP_FILE}
while read file
do
newfile=$(echo "${file}" | sed 's, ,\\ ,g') ## line 1
done < ${TEMP_FILE}
@Patrick on 에서 답을 시도한 후에는 line 1효과가있는 것 같습니다. 하지만이 같은 파일이있는 경우 Dr\^s A.tif, printf명령 도움이하지 않는 것, 그것은 나를 보여줍니다 Dr\^s\ A.tif. 다음과 같이 콘솔에서 수동으로 시도하면 :
printf "%q" "Dr\^s A.tif"
나는이 출력을 가질 것이다 :
Dr\\\^s\ A.tif
이것을 처리하는 방법에 대한 아이디어가 있습니까?