명령을 사용하여 파일을 이동할 때 mv
먼저 파일을 읽고 메모리에 완전히 캐시한 다음 다른 파일로 저장합니까? 그래도 쓰는거랑 똑같네
while read line; do
echo "$line" >> output_file
done < input_file
비슷하다 cp
. 한 파일을 다른 파일로 복사할 때 복사하기 전에 파일이 메모리에 완전히 캐시됩니까?
답변1
일반적으로 a는 mv
복사본보다 이름 바꾸기에 더 가깝습니다. 클래식 UNIX 유형 파일 시스템에서 소스와 대상이 동일한 마운트 지점에 있으면 파일 데이터가 포함된 inode가 복사되지 않습니다. 대신, 동일한 inode를 가리키는 새 파일 이름이 생성되고 이전 파일 이름은 연결 해제됩니다.
다른 마운트 지점 인 경우 mv
실제 복사본이 됩니다. 한 번에 RAM의 비율은 사용자에 대한 투명성이 정의되지 않은 운영 체제 세부 사항입니다.
한 가지 예로서, 데이터가 실제로 새 위치에 복사된 것으로 간주되는 경우 파일은 개념적으로 사용자에게 디스크에 "기록"될 수 있습니다. 그러나 운영 체제 수준에서는 아직 하드웨어에 플러시되지 않은 버퍼에 실제로 상주할 수 있습니다.