一般用户在linux系统中没有管理员权限。所以find命令经常遇到Permission denied。
这里提供两种解决办法:
1. 使用python脚本,本人自己写了一个python脚本可以在服务器上运行查找特定文件的功能且不会报Permission denied的错误
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. 使用shell脚本 alias findfile='find . -depth -type f -iname "*" 2>/dev/null | xargs md5sum 2>/dev/null | grep --color -nE -ir' 这个shell命令也可以做到类似的功能,不过个人觉得性能上还是不如python脚本快