Trova leggibili con Autorizzazioni come POSIX?

0

Sistemi mirati: Linux e OS X. codice originale che funziona in Ubuntu 16.04 ma non in OS X, ma segue senza successo POSIX standard

gfind ~ ! -readable -prune -o -type f -name "*.tex" 

dove

  • ! riguarda Negazione di un primario; l'operatore unario NOT.
  • -readable TODO questo non sembra essere POSIX
  • -prune è di circa Il primario deve sempre essere valutato come vero; causerà find non discendere il percorso corrente se è una directory. Se viene specificato il primario -depth, il primario -prune non avrà alcun effetto.
  • -o è di circa Alternanza di primari; l'operatore OR. La seconda espressione non deve essere valutata se la prima espressione è vera. Se non lo è, allora questo.
  • -type sul tipo, qui il file f
  • -name sul nome file, qui *.tex

Output

gfind: paths must precede expression: type
Usage: gfind [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

Risoluzione della proposta

Utilizza -perm 0744 anziché -readable ma non sei sicuro se è equivalente

gfind ~ ! -perm 0744 -prune -o -type f -name "*.tex" 

Output: /Users/masi . Uscita prevista: elenco di file .tex.

Come si possono impostare le autorizzazioni di ricerca in modo corretto per essere leggibili?

    
posta Léo Léopold Hertz 준영 02.06.2016 - 13:32
fonte

2 risposte

1

La doppia negazione all'inizio rende questo piuttosto complesso. Semplicemente usando

gfind . -readable -type f -name '*.tex'

dovrebbe funzionare.

PS: O find . -perm +0666 -type f -name '*.tex' per il find predefinito.

    
risposta data 02.06.2016 - 21:43
fonte
0

Dopo aver tentato di utilizzare le opzioni find -user , -group e -perm , il comando find è diventato rapidamente ingestibile. Uno script in linea con find che utilizza -r test della shell sarebbe portatile tra i due sistemi operativi.

find ~ -type f -name '*.tex' -exec sh -c 'for file
do
    [ -r "$file" ] && echo "$file"
done
' sh {} + 2>/dev/null
    
risposta data 03.06.2016 - 18:36
fonte

Leggi altre domande sui tag