Мне нужно разработать одну команду find , который ищет:

  • Все программы на C # или Java
  • Находится в домашнем каталоге текущего пользователя
  • Иметь хотя бы одну жесткую ссылку
  • Читаем для всех
  • Установить хотя бы один бит записи
  • Ни для кого не выполняется

Я нашел ответы на все вопросы, кроме последнего критерия, и вот мой код:

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

Я действительно не думаю, что это правильно, и это не полностью. Помогите?

1 ответ1

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

Вы можете разбить это обратно в одну более длинную, трудную для чтения строку. Я разбил его, чтобы сделать его читабельным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .