Ad esempio, in My Documents, ci sono le seguenti cartelle:
.ssh
.subversion
È una sorta di convenzione di denominazione di cui non sono a conoscenza?
Ad esempio, in My Documents, ci sono le seguenti cartelle:
.ssh
.subversion
È una sorta di convenzione di denominazione di cui non sono a conoscenza?
Risposte:
Questa convenzione di denominazione proviene da sistemi operativi simili a Unix (come Linux o OS X), dove significa un file o una directory "nascosti". Funziona ovunque, ma il suo uso principale è quello di nascondere i file di configurazione nella tua home directory (es. ~/.cache/O ~/.plan- sono spesso chiamati "dotfile").
I dotfile potrebbero, in un certo senso, essere chiamati l'equivalente Unix tradizionale della directory "AppData" su Windows. (Molti programmi Linux vengono modificati per seguire le specifiche della directory di base XDG , spostando la loro configurazione su ~/.config/e altri dati su ~/.cache/& ~/.local/share/- questo lo rende un po 'più simile a AppData\Roaminge AppData\Local.)
Hai queste .sshe .subversiondirectory su Windows perché hai usato alcuni programmi - in particolare OpenSSH e Subversion - che sono stati portati per usare le API di sistema di Windows anziché quelle di POSIX, ma non sono stati adattati per alcune altre convenzioni di Windows.
A volte questo adattamento viene saltato intenzionalmente, per semplificare la vita delle persone che usano ambienti simili a Unix come Cygwin sui loro sistemi Windows. Ad esempio, Cygwin installa il set standard di strumenti simili a Unix come ls, che ignora il flag "nascosto" di Windows e onora solo i .dotfilenomi. Inoltre, l'utilizzo della stessa posizione (ad es. <home>/.ssh) Può semplificare la sincronizzazione della configurazione tra i propri computer Windows e Linux / BSD / OSX.
Inoltre: in genere questi file si trovano nella home directory dell'utente , ad esempio su Linux o su Windows 7+. È abbastanza raro che vengano inseriti nelle sottodirectory "Documenti" o "I miei documenti"./home/name/.sshC:\Users\name\.ssh
Mentre Rob Pike scrive su Google+ , questa è stata una caratteristica accidentale:
Molto tempo fa, mentre il progetto del file system Unix veniva elaborato, le voci
.e le voci..apparivano per facilitare la navigazione. Non ne sono sicuro, ma credo che sia..entrato durante la riscrittura della versione 2, quando il file system è diventato gerarchico (aveva una struttura molto diversa all'inizio). Quando si digitava ls, tuttavia, venivano visualizzati questi file, quindi Ken o Dennis aggiungevano un semplice test al programma. Allora era in assembler, ma il codice in questione era equivalente a qualcosa del genere:
if (name[0] == '.') continue;Questa affermazione era un po 'più breve di quello che avrebbe dovuto essere, che è
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;ma ehi, è stato facile.
Ne risultarono due cose.
Innanzitutto, è stato impostato un precedente negativo. Molti altri programmatori pigri hanno introdotto dei bug apportando la stessa semplificazione. I file effettivi che iniziano con punti vengono spesso ignorati quando devono essere conteggiati.
In secondo luogo, e molto peggio, è stata creata l'idea di un file "nascosto" o "punto". Di conseguenza, più programmatori pigri hanno iniziato a trascinare i file nella home directory di tutti. Non ho troppe cose installate sul computer che sto usando per digitare questo, ma la mia directory home ha circa un centinaio di file di punti e non so nemmeno cosa siano la maggior parte di loro o se siano ancora necessari . Ogni valutazione del nome del file che passa attraverso la mia home directory è rallentata da questo fango accumulato.
lsha la -apossibilità di elencare tutti i file.
LOGIN.COMo DECW$MAIL.DAT nella tua home directory . (Non sono sicuro di quali altri sistemi fossero popolari in quel momento.) Unix era stato appena creato di recente; non aveva alcuna convenzione.
.."up dir"; Microsoft ha pubblicizzato queste "funzionalità Unix avanzate".