Ho letto qui che puoi contare il numero di invocazioni di commandin -exec command {} +tramite piping | wc -lfino alla fine.
Anche se capisco che -execdirè diverso, in quanto, per ogni sottodirectory corrispondente che viene findrilevata, esegue un'invocazione commanddalla sottodirectory in cui è contenuta, se ho più di un file corrispondente in una sottodirectory, non dovrebbe finirò con il numero di invocazioni uguale al numero di sottodirectory corrispondenti e non il numero di invocazioni che corrispondono al numero di file corrispondenti in quelle sottodirectory?
Sto finendo con quest'ultimo quando eseguo quanto segue:
$ find . -name "bob*" -execdir echo {} + | wc -l
La pagina man per gli execdir command {} +stati afferma che il primo dovrebbe essere il caso:
Come per l'
-execazione, il+modulo di-execdircostruirà una riga di comando per elaborare più di un file corrispondente, ma ogni invocazione data dicommandelencherà solo i file presenti nella stessa sottodirectory.
vale a dire
Sto ottenendo:
./file1inDir1
./file2inDir1
./file3InDir2
./file4InDir3
Quando me lo aspetto, in base alla pagina man:
./file1inDir1 ./file2inDir1
./file3InDir2
./file4InDir3
echoe gli argomenti sono generati da{} +e non ci sono nuove righe nei nomi dei file (la maggior parte delle persone non lo fa) ALLORA il numero di righe è il numero di invocazioni e funziona. Se il comando dicehead -n 999000 /dev/urandomche va orribilmente storto.