Ein Befehl zum Suchen mit mehreren Argumenten?

0

Ich muss einen einzelnen findBefehl entwickeln, der Folgendes sucht:

  • Alle C # - oder Java-Programme
  • Befindet sich im Home-Verzeichnis des aktuellen Benutzers
  • Haben Sie mindestens einen festen Link
  • Für alle lesbar
  • Haben Sie mindestens ein Schreibbit gesetzt
  • Für niemanden ausführbar

Ich habe Antworten für alles außer dem letzten Kriterium gefunden und hier ist mein Code:

find /home -name "*.c" "*.java" -links 1 (-perm -a=r -a -perm -a=!x)

Ich halte es nicht wirklich für richtig und es ist unvollständig. Hilfe?

slhck
quelle

Antworten:

1
find $HOME \(-name '*.java -o -name '*.c' \) \    # home directory && filenames
      -link +0                               \    # one or more hard links
      ! -perm -111                           \    # not executable by anybody  -111 means "any of" 
       -perm /444                            \    # at least one write bit set
       -perm 666                                 # ugo read

Sie können dies wieder zu einer längeren, schwerer lesbaren Zeile zusammenfassen. Ich habe es ausgebrochen, um es lesbar zu machen.

Jim Mcnamara
quelle