Perché il comando find non trova la directory quando viene eseguito da ~?


9

C'è una directory sotto /tmpcon il nome test_copy.

$ ls /tmp/test_copy/
a.sh b.sh  

$ cd /tmp  
/tmp$ find . -name test_copy  
./test_copy

Ma se eseguo il findcomando seguente non restituisce nulla.

~/scripts$ find /tmp -name test_copy  
~/scripts$  

Perché non riesci a findtrovare la directory nell'ultimo caso?


3
Qual è il risultato di ls -ld /tmp?
Xhienne,

2
@xhienne: hai ragione! Era un collegamento simbolico a un'altra directory. Puoi pubblicarlo come risposta?
Jim,

Risposte:


15

Se /tmpè un collegamento simbolico, findnon entrerà nella directory e si fermerà, non trovando nulla.

D'altra parte, funzionerà uno dei seguenti comandi:

find -H /tmp -name test_copy
find /tmp/ -name test_copy

(la desinenza /dereferenzia il link simbolico)


1
Questo è probabilmente il caso di macOS in particolare. Su macOS, / tmp è un collegamento simbolico a / private / tmp o alcuni di questi.
Kojiro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.