(2 risposte)
Chiusa 3 anni fa.
Possibile duplicato:
Come Linux gestisce più separatori di percorso (/home////nomeutente///file)
La maggior parte dei comandi che uso in Linux si comportano esattamente allo stesso modo se includo la barra finale /
carattere alla fine del nome di una directory o meno.
Ad esempio:
ls /home/cklein
ls /home/cklein/
cp foo bar
cp foo/ bar/
Quando è importante questa barra finale? Qual è il significato semantico della barra finale?
Risposta accettata:
Un buon esempio è lo spostamento di un file in una directory:
mv some_file foo
contro
mv some_file foo/
Se foo
non esiste, il primo rinominerà some_file
a foo
, invece del previsto foo/some_file
; il secondo si lamenterà, che è quello che vuoi.
Se foo
esiste ma non è una directory, la prima può intaccare il foo
file; di nuovo, il secondo si lamenterà.
cp
presenta problemi simili.
Lavorando su alcune vecchie versioni di SunOS, ho sviluppato l'abitudine di aggiungere /.
, perché il sistema ha effettivamente ignorato un /
finale su un nome di file; ad esempio, /etc/motd/
si riferirebbe al file anziché essere un errore. Le versioni successive di SunOS / Solaris non sembrano avere questo problema.