나는 읽었다"리눅스 성경 10판"130쪽. 연습 #7:
만들다/tmp/파일목차. 이 디렉토리에서 모든 파일 찾기/usr/공유 5MB보다 크고 10MB보다 작은 디렉터리를 다음 위치에 복사합니다./tmp/파일목차.
내 명령은 다음과 같습니다 find /usr/share -type f -size +5M -size -10M -exec cp {} /tmp/FILES \;
. 일반 사용자처럼 실행하고 가져옵니다.
cp: error copying '/bla/bla' to '/lol/kek': Input/output error find: '/usr/share/bla-bla': Permission denied
그 후 슈퍼유저로 실행을 시도했는데 오류가 발생했습니다(없음 Permission denied
).
cp: error copying '/bla/bla' to '/lol/kek': Input/output error
슈퍼유저로 실행해도 오류가 나는 이유가 무엇인지 설명해주세요. 감사해요.
PS of 명령이 -exec
비어 있어야 하는 이유를 설명해 주세요 {}
.
답변1
EIO
"입/출력 오류"는 소스 파일을 읽거나 대상 파일을 쓰는 동안 낮은 수준의 I/O 오류( )가 발생했음을 의미합니다. 이는 저장 공간에 문제가 있음을 의미하며 dmesg
추가 정보가 제공됩니다.
이러한 오류는 권한이나 사용 권한과는 아무 관련이 없습니다. 따라서 cp
루트로 실행해도 오류가 사라지지 않습니다("권한 거부" 오류와는 다름).
"find"의 -exec 옵션 이해{}
with 의 사용법이 설명되어 있습니다 -exec
.