È un comportamento molto strano e non ho mai visto nulla di simile durante l'utilizzo di Cygwin. Non ho abbastanza punti reputazione per chiedere informazioni usando i commenti quindi pubblicherò solo le tecniche di debug che userò. Spero che saranno utili a chiunque abbia problemi simili.
In primo luogo, proverei a verificare che stavo eseguendo l'eseguibile corretto. In esecuzione find --version
dovrebbe restituire qualcosa di simile al seguente:
find (GNU findutils) 4.5.11
Confezionato da Cygwin (4.5.11-1)
Se non avessi ancora ricevuto alcun risultato, avrei installato (e installato) Cygwin strace
comando:
mkdir testdir
strace -o find.out find testdir
rmdir testdir
strace
consente di vedere ciò che chiama un Cygwin eseguibile per Cygwin
DLL. Con il comando precedente, l'output del comando find è memorizzato in find.out
.
A meno che non abbiate familiarità con la programmazione di sistema di Windows, in gran parte
non ha senso Tuttavia, guardare attraverso l'output ti darà ancora un
idea di ciò che sta facendo il comando, ad es. il Cygwin PATH e altri ambienti
le variabili passate al comando vengono catturate. Io di solito cerco open(
per vedere quali file sta tentando di usare il comando (trova). Chiamate riuscite a
la funzione aperta verrà visualizzata come:
open: open(/home/anthony/t, 0x30C000)
open: open(., 0x400000)
Le chiamate non riuscite per aprire restituiscono un valore di -1. Nota che non tutti i file
i tentativi di apertura sono effettivamente necessari per il corretto funzionamento del comando.
Questo è un esempio di un tale tentativo fallito (le informazioni in locale.alias
sarebbe letto se esistesse, ma non è necessario per trovare fare il suo lavoro):
open: -1 = open(/usr/local/share/locale/locale.alias, 0x8000), errno 2
Nota: creo (e quindi rimuovo) il vuoto testdir
directory così non c'è una quantità schiacciante di informazioni catturate nel file di output strace.