
내가 일반적으로 설치하는 대부분의 애플리케이션(opam, 화물, vscode, julia 등)은 내 홈 폴더에 로컬 저장소를 유지합니다. 이렇게 선호하는 이유가 있나요? 아니면 대안에 단점이 있습니까?
예를 들어, 이러한 파일이 /var 또는 ~/.local/share에 있어야 한다고 제안되는 경우가 있지만 "cross-distro" 응용 프로그램에서 이러한 폴더를 사용하는 데 문제나 성가심이 있을 수 있습니다.
그러한 가능한 문제를 알고 있습니까?
[여기서 제가 질문한 세 가지 질문 중 어떤 답변이라도 만족스러울 것입니다.]
답변1
Rob Pike의 Google+ 게시물에서 단축키에 대한 강의, 다음과 같은 설명이 제공됩니다.
오래 전, Unix 파일 시스템의 설계가 진행 중이었을 때 항목
.
과 항목이..
나타나 탐색을 더 쉽게 만들었습니다. 확실하지는 않지만..
파일 시스템이 계층적(초기에는 매우 다른 구조를 가짐)이 되었을 때 버전 2를 다시 작성하는 동안 개입했다고 생각합니다. 그러나 를 입력하면ls
이러한 파일이 나타나므로 Ken이나 Dennis가 프로그램에 간단한 테스트를 추가했습니다. 당시에는 어셈블러에 있었지만 문제의 코드는 다음과 같습니다.if (name[0] == '.') continue;
이 진술은 원래 있어야 했던 것보다 약간 짧았습니다.
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
하지만 뭐, 쉬웠지.
두 가지 결과가 나왔습니다.
첫째, 나쁜 선례가 생겼다. 다른 많은 게으른 프로그래머들도 동일한 단순화를 통해 버그를 도입했습니다. 마침표로 시작하는 실제 파일은 계산해야 할 때 건너뛰는 경우가 많습니다.
둘째, 훨씬 더 나쁜 것은 "숨겨진" 파일이나 "점" 파일이라는 아이디어가 만들어졌다는 것입니다. 결과적으로 더 게으른 프로그래머들이 모든 사람의 홈 디렉토리에 파일을 넣기 시작했습니다. 이 글을 입력하기 위해 사용하고 있는 컴퓨터에는 그렇게 많은 것들이 설치되어 있지 않습니다. 하지만 내 홈 디렉토리에는 약 100개의 도트 파일이 있고 그 중 대부분이 무엇인지 또는 여전히 필요한지조차 모릅니다. . 내 홈 디렉토리를 통과하는 모든 파일 이름 평가는 이 축적된 슬러지로 인해 느려집니다.
나는 숨겨진 파일이라는 개념이 의도하지 않은 결과였다고 확신합니다. 그것은 확실히 실수였습니다.
(닷 파일이 목적을 제공한다고 반대하는 사람들을 위해 나는 그것에 대해 이의를 제기하지 않지만 이름에 대한 규칙이 아니라 목적을 제공하는 파일이라고 반박합니다. 그들은 쉽게 $HOME/cfg 또는 $HOME에 있을 수 있습니다. /lib는 도트 파일이 없는 계획 9에서 수행한 작업입니다.)
그래서 내가 이해하는 것은 다음과 같습니다.
이러한 "도트 파일"이 보이지 않게 되자 다른 프로그래머들이 뛰어들어 귀중한 구성 데이터를 저장할 위치가 .
및 ..
파일과 함께 도트 파일에 있다고 결정했습니다. 초기 파일 계층 구조는 별로 발전하지 않았기 때문에 모두 $HOME 디렉토리에 있게 되었고, 이는 창시자의 발자취를 따라 모든 사람이 준수하는 기록되지 않은 규칙이 되었습니다.
이로 인해 다음과 같은 괴물이 탄생했습니다.
참조 :