Ho letto qui che puoi contare il numero di invocazioni di command
in -exec command {} +
tramite piping | wc -l
fino alla fine.
Anche se capisco che -execdir
è diverso, in quanto, per ogni sottodirectory corrispondente che viene find
rilevata, esegue un'invocazione command
dalla 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'
-exec
azione, il+
modulo di-execdir
costruirà una riga di comando per elaborare più di un file corrispondente, ma ogni invocazione data dicommand
elencherà 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
echo
e 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/urandom
che va orribilmente storto.