Обычные пользователи не имеют прав администратора в системе 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.