Найдите все файлы с определенным типом пантомимы

Я скопировал огромное количество (Android SDK) файлы от общего каталога до моей системы. Теперь все файлы, которые их типы MIME application/x-shellscript или application/x-executable, кажется, что не исполняемый файл. Например, когда я пытаюсь работать mksdcard Я получаю эту ошибку:

$ ./mksdcard
bash: ./mksdcard: Permission denied

Как я могу найти только файлы с теми типами MIME? И затем как я могу изменить те полномочия?

Примечания:

1-, Когда я попробовал find <path> -type f -executable с как пользователь root это показывает все файлы (даже.PNG файлы) и когда я попробовал это типичным пользователем, это ничего не показывает. Я не знаю, как отфильтровать файлы с вниманием к их типу MIME.

2-каталогов Share (источник) в настоящее время не доступны.

0
задан 29 April 2018 в 06:15

2 ответа

Подсказка:

человек cp

Затем нажимает / и входит attr (часть 'атрибутов'), и нажатие ВХОДЯТ .
Теперь, считайте части текста, который был отмечен.
Удар n или p заставят дисплей перейти к 'n'ext или 'p'revious экземпляр.

<час> Попытка объяснить:

Предположение, что у Вас все еще есть исходные файлы, доступные, можно восстановить атрибуты файла скопированных файлов при помощи этого аргумента 'CP' (копия), вместе с originial аргументами.
  
       --attributes-only
              don't copy the file data, just the attributes

, Если я не совсем ошибаюсь, Вы получите настройки для всех упомянутых файлов, исправленных этим.

0
ответ дан 14 April 2019 в 21:48

Эти find команда не тестирует сам mimetype, но можно использовать его для выполнения эти mimetype команда и grep результат.

, Например

find path/to/dir/ -type f -exec sh -c '
  for f; do 
    mimetype -b "$f" | grep -Eq "application/(x-shellscript|executable)" && 
    printf "%s\n" "$f"
  done
' sh {} +

Для выполнения некоторой операции на файлах соответствия (такой как chmod или chown) замените эти printf команда с этим, например,

find path/to/dir/ -type f -exec sh -c '
  for f; do 
    mimetype -b "$f" | grep -Eq "application/(x-shellscript|executable)" && 
    chmod u+x "$f"
  done
' sh {} +

я высоко рекомендую проверить текущее владение и полномочия первый , например, с ls

find path/to/dir/ -type f -exec sh -c '
  for f; do 
    mimetype -b "$f" | grep -Eq "application/(x-shellscript|executable)" && 
    ls -l "$f"
  done
' sh {} +
0
ответ дан 14 April 2019 в 21:48

Другие вопросы по тегам:

Похожие вопросы: