태그 보관물: command-line

command-line

명령 행에서 삭제하는 것이 GUI에서보다 시간이 많이 걸리는 이유는 무엇입니까? 내용에 대한 빠른

컴퓨터에서 수십 개의 이미지를 삭제하면서 궁금한 점이 있습니다. rm -rf디렉토리의 내용에 대한 빠른 명령으로 모든 이미지가 빠르게 사라졌습니다. 동일한 12 개 정도의 이미지를 휴지통 / 재활용 금지로 드래그하면 10 초 이상이 소요될 수 있습니다.

이제 GUI 중 일부가 GUI의 오버 헤드에서 비롯되었다고 확신하며, 일부는 휴지통에 넣은 경우 파일이 여전히 어떤 형태로 “존재”한다는 사실 일 수 있습니다. 예를 차지하는 거대한 시간의 차이? “rm”과 “delete”는 근본적으로 다른 명령 일 뿐이므로 사과와 오렌지를 비교하려고합니까?



답변

GUI가 파일을 단순히 “삭제”하는 것 이상을 수행한다는 것을 알았습니다.

$ rm -rf

폴더에서 파일과 폴더를 찾아 삭제합니다.

GUI는 먼저 전체 트리를 스캔하여 거기에 무엇이 있는지 알아냅니다 (그래서 예쁜 막대를 그리는 데 얼마나 필요한지 알고 있습니다). 그러면 트리를 통해 파일을 다시 현재 위치에서 현재 위치로 이동합니다. 휴지통은 특정 GUI에 대한 파일입니다. 먼저 새로운 고유 파일 이름을 생성하고 휴지통 폴더에 파일을 링크 한 다음 현재 폴더에서 링크를 해제하고 파일의 출처 색인을 업데이트하여 파일이 “취소”될 수 있으므로 이동 시간이 오래 걸립니다. 하나가 아닌 많은 작업이 있습니다.

예를 들어, Gnome 3에서 파일은 다음 위치로 이동됩니다.

~/.local/share/Trash/files/<filename>[.<version>]

filename원래 파일 이름은 어디에 version있으며 파일을 고유하게 만들기위한 증분 버전 번호입니다 (첫 번째 파일 인스턴스에는 버전 번호가 없음). 그와 관련된입니다 .trashinfo폴더에 저장된 파일은 :

~/.local/share/Trash/info/<filename>[.<version>].trashinfo

이 파일에는 삭제 전 파일의 원래 경로와이 파일이 삭제 된 날짜 및 시간이 포함됩니다.

삭제하는 트리의 모든 개별 파일에서 수행해야하는 이러한 추가 작업은 모두 휴지통에서 파일을 복원 할 수 있고 파일 이름이 같은 파일을 삭제할 수 있어야합니다. 동일한 위치에서 이전 버전으로 복원하십시오.

그 중 어느 것도 간단한 명령 rm이나 mv명령으로 수행되지 않습니다 .


답변