Как мне перечислить общедоступные файлы в моем домашнем каталоге? (режим 777)

Я хочу получить список всех файлов в моей домашней папке с правами rwx (чтение-запись-выполнение) или 777 для каждого .

Кроме того, какая команда должна знать права доступа к файлу?

7
задан 10 July 2012 в 02:02

3 ответа

От терминала:

  • Терминал открывается в Вашем корневом каталоге по умолчанию. Отовсюду еще ввести cd ~ возвратиться к корневому каталогу.

  • ls -l покажет Вам полномочия файла вначале, например.

    -rwxr-xr-x 1 izx izx 11217428 Oct 2 2011 wkhtmltoimage-amd64

Первый Метод: путь наблюдать-и-изучать

  • Можно затем отфильтровать с grep для получения желаемого результата:

    ls -l | grep -P ".{7}rwx.*"
    • регулярное выражение здесь говорит grep только выбирать строки, где символы 8-10 rwx
  • который на моих шоу корневого каталога:

    -rwxrwxrwx 1 izx izx         0 Jun 15 23:42 sd.png
    -rwxrwxrwx 1 izx izx         0 Jun 15 23:42 slashdot.png
    drwxrwxrwx 3 izx izx      4096 Jun 15 21:31 src
    

Второй Метод: надлежащий, рекурсивный путь

  • В Вашем корневом каталоге ввести find . -perm -a+rwx

    • Вы говорите, находят для просмотра текущего (домашнего) каталога и всех подкаталогов, для файлов, которые являются rwx всеми; результаты будут отображены с полными относительными путями, например.
    ./.mozilla/firefox/lr5z24b3.default/lock
    ./src
    ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so
    ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.la
    ./src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so.0
    ./src/accountsservice-0.6.15/debian/libaccountsservice-dev/usr/lib/libaccountsservice.so
    ./src/accountsservice-0.6.15/debian/libaccountsservice0/usr/lib/libaccountsservice.so.0
    ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so
    ./src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so.0
    ./.pulse/676238f89edd1f57138b3da400000004-runtime
    ./sd.png
    ./slashdot.png
    ./XnView/lib/libQtGui.so.4
    ./XnView/lib/libQtWebKit.so.4
    ./XnView/lib/libQtXml.so.4
    ./XnView/lib/libQtDBus.so.4
    ./XnView/lib/libQtNetwork.so.4
    ./XnView/lib/libQtCore.so.4
    ./XnView/lib/libQtSvg.so.4
    
  • Полужирные записи в корневом каталоге также обнаружились в первом методе.


Для большего количества путей на использовании find для выполнения, что Вы хотите, обратитесь к ответу Eliah Kagan только выше или ниже этого.

12
ответ дан 10 July 2012 в 02:02

Обычно вы используете команду ls, чтобы узнать о правах доступа к файлам. Но для конкретной задачи, где вы хотите автоматически перечислять файлы с определенными разрешениями, использование ls, даже если вы фильтруете выходные данные с помощью другой утилиты, такой как grep, быстро станет очень сложным для правильного выполнения. Поэтому для таких задач лучше использовать find.

Если вы хотите перечислить все файлы, которые ...

  1. содержали в любом месте вашего домашнего каталога (в том числе в подкаталогах вашего домашнего каталога, подкаталогах этих подкаталогов и т. Д.) И

  2. , которые также могут быть явно читаемыми, записываемыми и исполняемыми всеми

... тогда эта команда сделает это за вас:

find ~ -perm 777

Это действительно это просто.

Если вы хотите отобразить только те файлы, которые удовлетворяют двум вышеуказанным условиям и находятся непосредственно в домашнем каталоге (не внутри какого-либо подкаталога), используйте эту команду:

find ~ -maxdepth 1 -perm 777
  • В этом случае 777 будет указывать файлы, которые доступны для чтения, записи и выполнения для вас, вашей группы и всех остальных. Если некоторые из файлов могут иметь странные наборы разрешений, например 477 (вы можете прочитать файл, а все остальные могут выполнить и записать файл), вы, вероятно, захотите использовать:

    find ~ -maxdepth 1 -perm -o+rwx
    

    Дефис перед -o+rwx означает, что файл может иметь другие разрешения, а o+rwx означает, что другие (вне группы и пользователя, которому принадлежит этот файл) могут читать, записывать и выполнять этот файл без проверки каких-либо других разрешений. .

См. man find для получения подробной информации о том, как выполнять эти и подобные операции, и man chmod для значения 777 и других числовых режимов. 1130]

0
ответ дан 10 July 2012 в 02:02
  • Откройте терминал.
  • Перейдите в каталог, в котором вы хотите узнать права доступа к файлу, с помощью команды:

    cd "Directory"
    
  • Замените текст в кавычках на нужное имя каталога .

  • Затем введите другую команду:

    ls -l
    

    Эта команда (ls) обычно используется для получения имен файлов. Аргумент -l предоставит полную информацию о файлах.

    Таким образом, вы также сможете увидеть права доступа к файлу.

0
ответ дан 10 July 2012 в 02:02

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

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