Ubuntu 16.04의 기본 압축 도구를 사용하여 마우스 오른쪽 버튼을 클릭하여 많은 수의 작은 파일(6102 pdf&txt 파일)을 압축하고 zip 파일을 네트워크 디스크에 업로드했습니다. 그러나 다른 사람들이 Windows에서 이를 다운로드하고 압축을 풀면 축소된 파일(5809)을 얻게 됩니다. 다시 압축하여 다시 보내려고 했지만 성공하지 못했습니다. 다른 사람들은 여전히 더 적은 수의 문서를 받았습니다. 그런데 우분투에서 압축을 풀어보니 6102개의 파일이 있었습니다. Ubuntu와 Windows 간에 차이점이 있는 이유는 무엇입니까? 추신: 두 개의 서로 다른 네트워크 디스크를 사용해 보았습니다. 둘 다 5809입니다.
답변1
댓글에 따르면, 이는 문자가 포함된 파일 이름 때문입니다 *
.다른 캐릭터들과 함께(및 하위 문자열)은 Windows 시스템의 파일 이름에 유효하지 않습니다.
Unix 시스템에서는 Perl 유틸리티를 사용하여 *
다음과 같이 모든 문자를 밑줄로 변경할 수 있습니다._
rename
rename -v 'tr/*/_/' ./*'*'*.pdf
이는 PDF 파일이 모두 현재 디렉토리에 있다고 가정합니다. 이 표현식은 모든 것을 문자열(파일 이름) 로 tr/*/_/
변경하는 Perl 표현식 이며, 파일 이름 글로빙 패턴은 이름에 파일 이름 접미사가 하나 이상 있는 현재 디렉터리의 모든 파일과 일치합니다.*
_
./*'*'*.pdf
*
.pdf
간단한 루프는 다음에서 동일한 작업을 수행합니다 bash
.
for name in *'*'*.pdf; do
mv -i "$name" "${name//'*'/_}"
done
... "${name//'*'/_}"
대체될 "$name"
모든 *
문자가 _
문자로 변경됩니다.