Как найти файлы в системе linux/centos или кластере облачных вычислений

облачные вычисления

Обычные пользователи не имеют прав администратора в системе Linux. Таким образом, команда find часто сталкивается с отказом в доступе.

Вот два решения:

1.Используя скрипт python, я сам написал скрипт python, который может запускать функцию поиска определенного файла на сервере, не сообщая об ошибке «Отказано в доступе».

import os
import re

def findInPath(dirname):
    pattern = re.compile(r'libcuda\.so\.1') #这个地方设置要找的文件名
    result = []
    for maindir, subdir, file_name_list in os.walk(dirname):
        for filename in file_name_list:
            apath = os.path.join(maindir, filename)
            result = pattern.findall(apath)
            if result[0] == '':
                pass
            else:
                print(apath)

if __name__ == "__main__":
    path = '/opt'
    findInPath(path)

Установите фактический начальный каталог для поиска и имя файла, который нужно найти, и вы можете играть с удовольствием. С помощью этого скрипта лучше всего использовать вычислительную мощность кластера для отправки задачи, что будет намного быстрее, чем запуск в командной строке.

2.использовать сценарий оболочки псевдоним findfile='find .-depth -type f -iname "*" 2>/dev/null | xargs md5sum 2>/dev/null | grep --color -nE -ir' Эта команда оболочки также может выполнять аналогичные функции, но лично я считаю, что производительность все еще не такая высокая, как у скрипта Python.