Linux_6_文件查找与打包压缩
目录
- 文件查找与打包压缩
- 1文件查找
- 1.1 locate
- 1.2 find
- 1.2.1 指定搜索目录层级
- 1.2.2对每个目录先处理目录内的文件,再处理目录本身
- 1.2.3根据文件名和inode查找
- 1.2.4 根据属主、属组查找
- 1.2.5根据文件类型查找
- 1.2.6空文件或目录
- 1.2.7组合条件
- 1.2.8 排除日录
- 1.2.9根据文件大小来查找
- 1.2.10根据时间戳
- 1.2.11 根据权限查找
- 1.2.12 处理动作
- 1.3参数换xargs
- 2压缩和解压缩
- 2.1 compress和uncompress
- 2.2 gzip和gunzip
- 2.3 bzip2和bunzip2
- 2.4 xz和unxz
- 2.5 zip和unzip
- 3打包和解包
- 3.1tar
- 3.2split
- 3.3cpio
文件查找与打包压缩
1文件查找
在文件系统上查找符合条件的文件
文件查找: locate, find
非实时查找(数据库查找): locate
实时查找: find
1.1 locate
locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db
索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库
索引构建过程需要遍历整个根文件系统,很消耗资源
工作特点:
- 查找速度快
- 模糊查找
- 非实时查找
- 搜索的是文件的全路径,不仅仅是文件名
- 可能只搜索用户具备读取和执行权限的目录
格式:
locate [OPTION]...[PATTERN].
常用选项
-i 不区分大小写的搜索
-n N 只列举前N个匹配项目
-r 使用基本正则表达式
例:
locate -n 3 -r '\.sh$' 使用正则表达式找到前三个以.sh结尾的文件
/boot/grub2/i386-pc/modinfo.sh
/data/scripts/BMI_cal.sh
/data/scripts/CHOOK_RABBIT.sh
1.2 find
find 是实时查找工具,通过遍历指定路径完成文件查找
工作特点:
- 查找速度略慢
- 精确查找
- 实时查找
- 查找条件丰富
- 可能只搜索用户具备读取和执行权限的目录
条式:
find [OPTION]... [查找路径] [查找条件] [处理动作]
-
查找路径: 指定具体目标路径,默认为当前目录
-
查找条件: 指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
-
处理动作: 对符合条件的文件做操作,默认输出至屏幕
1.2.1 指定搜索目录层级
-maxdepth level 最大搜索目录深度,指定目录下的文件为第1级
-mindepth level 最小搜索目录深度
例:
find /data -maxdepth 2 查找/data下的1级和2级目录(data本身不算1级)
/data
/data/.passwd.swp
/data/.passwd.swo
/data/.passwd.swn
1.2.2对每个目录先处理目录内的文件,再处理目录本身
-depth 或 -d
例:
find /data
/data 目录
/data/.passwd.swp 文件
/data/.passwd.swo 文件
/data/.passwd.swn 文件find /data -depth
/data/.passwd.swp 文件
/data/.passwd.swo 文件
/data/scripts/BMI_cal.sh 目录
/data/scripts/work_menu.sh 目录
/data/scripts/show_sys_info.sh
1.2.3根据文件名和inode查找
-name 文件名称 支持使用glob,如 * ? [] [^]通配符,要加""
-iname 文件名称 不区分字母大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件
-links n 链接数为n的文件
-regex"ATTERN" 以PATTERN匹配整个文件路径,而非文件名称
例:
find /etc -name "*passwd*" 通配符,要加""
/etc/pam.d/passwd
/etc/security/opasswd
/etc/passwd-#find / -inum 333 -ls 显示节点编号为333的文件与目录,-ls显示详细属性333 0 dr-xr-xr-x 9 root root 0 Jul 25 15:11 /proc/98333 0 drwxr-xr-x 2 root root 0 Jul 27 22:14 /sys/devices/system/memory/memory15/power
1.2.4 根据属主、属组查找
-user USERNAME 查找属主为指定用户(UID)的文件
-group GRPNAME 查找属组为指定组GID)的文件
-uid UserlD 查找属主为指定的UID号的文件
-gid GrouplD 查找属组为指定的GID号的文件
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
1.2.5根据文件类型查找
-type TYPE
TYPE可以是以下形式
f: 普通文件
d: 目录文件
l: 符号链接文件
s: 套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
例:
find /data -type d -ls128 0 drwxr-xr-x 3 root root 225 Jul 26 12:37 /data138 0 drwxr-xr-x 2 root root 212 Jul 27 17:07 /data/scripts
1.2.6空文件或目录
-empty
例:
find /etc -empty -ls
1.2.7组合条件
与 -a
或 -o
非 -not !
例:
#find /etc/ -type d -o -type l |wc -l
665
#find /etc/ -type d -o -type l -ls|wc -l #此时相当于-type l 与-ls中间加了个-a,而-a优先级高于-o,只显示这两个之间的文件
260
#find /etc/ \( -type d -o -type l \) -ls|wc -l 可以加上\(\)解决
665
德·摩根定律
- (非A) 或 (非B) = 非(A且B)
- (非A) 且 (非B) = 非(A或B)
示例:
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)
例:
#find ! -user joyce -a ! -user root
./mysql/mysql-community-client-8.0.32-1.el8.x86_64.rpm
./mysql/mysql-community-client-debuginfo-8.0.32-1.el8.x86_64.rpm
./mysql/mysql-community-client-plugins-8.0.32-1.el8.x86_64.rpm
等价于:
#find ! \( -user joyce -o -user root \)
./mysql/mysql-community-client-8.0.32-1.el8.x86_64.rpm
./mysql/mysql-community-client-debuginfo-8.0.32-1.el8.x86_64.rpm
./mysql/mysql-community-client-plugins-8.0.32-1.el8.x86_64.rpm#find / \( -not -user root -a -not -name 'f*' \) -ls 查找属主不是root且名不是f开头的文件
#find / -not \( -user root -o -name 'f*' \) -ls 等价
1.2.8 排除日录
-path dir -a -prune
例: 查找/下所有名字以.conf结尾的文件,但不查找/usr和/etc目录
#find / \( -path '/usr' -o -path '/etc' \) -a -prune -o -name "*.conf"
/boot/loader/entries/34f09f8df29847998143d560b2af24fb-4.18.0-348.el8.x86_64.conf
/boot/loader/entries/34f09f8df29847998143d560b2af24fb-0-rescue.conf
/run/NetworkManager/resolv.conf
1.2.9根据文件大小来查找
-size [+|-] #UNIT常用单位: k,M,G,c (byte) ,注意大小写敏感
#UNIT (#-1,#]如 6k 表示(5k,6k]
-#UNIT [0,#-1]如 -6k 表示[0,5k]
+#UNIT (#,8)如 +6k 表示(6k,∞)
例:
#find / -size 10M 查找9M-10M的文件
/var/cache/dnf/epel-updateinfo.solvx
/usr/lib/firmware/qcom/sdm845/adsp.mbn
/usr/lib/modules/4.18.0-348.el8.x86_64/vmlinuz
/usr/share/fonts/google-noto-emoji/NotoColorEmoji.ttf
1.2.10根据时间戳
以“天”为单位
-atime[+|-]# 读时间# [#,#+1)+# [#+1,∞]-# [O,#)
-mtime 修改时间
-ctime 属性修改时间
以“分钟”为单位
-amin
-mmin
-cmin
1.2.11 根据权限查找
-perm [/或-]MODEMODE 精确权限匹配,必须是MODE才行
/MODE 任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,+ 从CentOs 7开始淘汰
-MODE 每一类对象都必须同时拥有指定权限,与关系
0 表示不关注
说明:
- find -perm 755 会匹配权限模式恰好是755的文件
- 只要当任意人有写权限时,find -perm /222就会匹配
- 只有当每个人都有写权限时,find -perm -222才会匹配
- 只有当其它人 (other) 有写权限时,find -perm -002才会匹配
例:
#find /data/ -perm -444 -ls| head -5 权限三个都得有读权限128 0 drwxr-xr-x 3 root root 225 Jul 26 12:37 /data/132 12 -rw-r--r-- 1 root root 12288 Jul 7 20:41 /data/.passwd.swp136 4 -rw-r--r-- 1 root root 2640 Jul 8 16:58 /data/passwd
#find /data/ -perm /444 -ls| head -5 权限任意一个有4即可128 0 drwxr-xr-x 3 root root 225 Jul 26 12:37 /data/132 12 -rw-r--r-- 1 root root 12288 Jul 7 20:41 /data/.passwd.swp135 4 --w-r--r-- 1 root root 51 Jul 8 10:46 /data/issue.bak
#find /data/ -perm /044 -ls| head -5 权限后两个任意一个有4即可128 0 drwxr-xr-x 3 root root 225 Jul 26 12:37 /data/132 12 -rw-r--r-- 1 root root 12288 Jul 7 20:41 /data/.passwd.swp135 4 --w-r--r-- 1 root root 51 Jul 8 10:46 /data/issue.bak[root@CentOS8 ~]#find /data/ -perm -002 查找other里带有写权限的,和下面等价
[root@CentOS8 ~]#find /data/ -perm /002
1.2.12 处理动作
-print 默认的处理动作,显示至屏幕,不加也默认执行了这个隐藏动作
-ls 类似于对查找到的文件执行“s -I"命令
-fls file 查找到的所有文件的长格式信息保存至指定文件中,相当于ls > file
-delete 删除查找到的文件,并不交互,慎用
-ok CMD {}\; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交与式要求用户确认
-exec CMD {}\; 对查找到的每个文件执行由COMMAND指定的命令
{} 用于引用查找到的文件名称自身
例:
#ls
f1.txt f2.txt f3.txt issue.bak
#find /data/ -name 'f*' -ok rm {} \; find查找/data/下以f开头的文件并删除,{}代表前面find找到的文件,-ok开始标志\;表示结束标志
< rm ... /data/f1.txt > ? y
< rm ... /data/f2.txt > ? y 使用-exec不适应-ok,则不交互直接执行
< rm ... /data/f3.txt > ?
#ls
f3.txt issue.bak
1.3参数换xargs
xargs CMD 参数
例:
#find -name '*.txt'|xargs ls -Sl 将当前目录下找到的*.txt文件传递给ls作为参数以排序。(注意:ls不支持标准输入,无法使用管道传输 )
-rw-r--r-- 1 root root 15 Jul 28 00:19 ./f1.txt
-rw-r--r-- 1 root root 15 Jul 26 12:37 ./nianling.txt
-rw-r--r--. 1 root root 12 Jul 23 20:34 ./f3.txt
-rw-r--r-- 1 root root 0 Jul 28 00:19 ./f2.txt#echo {1..10}
1 2 3 4 5 6 7 8 9 10
#echo {1..10}|xargs -n1
1
2
3
4
5
6
7
8
9
10
#echo {1..10}|xargs -n4
1 2 3 4
5 6 7 8
9 10#seq 10
1
2
3
4
5
6
7
8
9
10
#seq 10|xargs
1 2 3 4 5 6 7 8 9 10#echo user{1..5}|xargs -n1 useradd 批量创建账号,注意使用-n1将参数分成一行一行,因为useradd一次只能接受一个参数
#echo user{1..5}|xargs -n1 userdel -r 批量删除账号
当文件名为"a b" 或 "c d"时,xargs默认以空格 作为文件名分隔符,此时会出现找不到文件a文件b文件c文件d的问题
#find -print0 | xargs -0 rm 使用0(nul)作为分隔符,这样rm时不会出现问题
2压缩和解压缩
2.1 compress和uncompress
这两个工具来源于ncompress包,需要事先yum
格式
compress options [file ...]
uncompress file.Z 解压缩
常用选项
-d 解压缩,相当于uncompress
-c 结果输出至标准输出,不删除原文件
-v 显示详情
例:
#compress -c file.txt > f.txt.Z 压缩file.txt至f.txt.Z,但保留原文件
#compress -dc f.txt.Z > f2.txt 解压缩f.txt.Z到f2.txt
zcat file.z 不显式解压缩的前提下查看文本文件内容,也可以重定向到文件中,即解压缩
2.2 gzip和gunzip
格式:
gzip [OPTION]... FILE
gunzip FILE
常用选项:
-k keep,保留原文件,C8上才有
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件不改变
-# 指定压缩比,#取值为1-9,值越大压缩比越大
例:
#cat f4 | gzip > f4.gz 支持管道
2.3 bzip2和bunzip2
来自于bzip2包
格式:
bzip2 [OPTION]... FILE...
bunzip2 FILE
常用选项
-k keep,保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 压缩比,取值1-9,默认为9
也可以预览,不过使用bzcat file,而不是zcat
2.4 xz和unxz
来自于xz包
格式:
xz [OPTION]... FILE...
unxz FILE
常用选项
-k keep,保留原文件
-d 解压缩
-c 结果输出至标准输出,保留原文件不改变
-# 压缩比,取值1-9,默认为6
也可以预览,不过使用xzcat file,而不是zcat或bxzcat
2.5 zip和unzip
zip 可以实现打包目录和多个文件并压缩成一个文件,但可能会丢失文件属性信息,如所有者和组信息,一般建议使用 tar 代替
zip [OPTION]... FILE_back_up FILE
unzip 默认解包结果输出到屏幕显示,可以使用-p重定向到文件
选项:
-r 对目录进行打包
-d dir 将文件解包到dir下
-p 管道
默认打包会包括目录本身,如果只想打包其中的文件,需要先进入目录中再进行打包
例:
#cat /var/log/messages | zip message - (-表示接收前面的标准输出)adding: - (deflated 86%)
#ls
message.zip
总结:
- 压缩比:xz > bz2 > gz > zip > compress
- zip可以压缩目录,其他都只能压缩文件,且单个文件压缩成单个文件
3打包和解包
3.1tar
tar 即 Tape ARchive磁带归档,可以对目录和多个文件打包成一个,且可以压缩,并且保留文件属性不丢失,常用于备份,推荐使用
格式
tar [OPTION]... FILE_backup FILE
c 打包
t 预览
x 解包 ,不需要加zjJ,通用,但系统上必须事先有安装其他命令
v 显示详细信息,过程
f 后跟要处理的文件
p 保留权限,不加也可以保留
-C 解压到指定位置
z 压缩成gz格式,间接调用gz命令,系统上必须事先有安装
j 压缩成bz2格式,同理
J 压缩成xz格式,同理
--exclude=FILE 排除文件
-T FILE 指定要打包的文件
-x FILE 指定要排除的文件
注意:tar无法备份ACL权限的文件
默认打包会包括目录本身,如果只想打包其中的文件,需要先进入目录中再进行打包
(1) 创建归档,保留权限
tar -cpvf /PATH/FILE.tar FILE...(2) 追加文件至归档: 注: 不支持对压缩文件追加
tar -rf /PATH/FILE.tar FILE...(3)查看归档文件中的文件列表
tar -t -f /PATH/FILE.tar(4展开文档
tar xf /PATH/FILE.tar
tar xf /PATH/FILE.tar -C /PATH(5) 结合压缩工具实现: 归档并压缩
z 压缩成gz格式,间接调用gz命令,系统上必须事先有安装
j 压缩成bz2格式,同理
J 压缩成xz格式,同理
例:
#tar c /var | tar x -C /data/ 相当于cp,将/var目录复制到/data/下,但速度更快
3.2split
split命令可以分割一个文件为多个
-b 指定分割大小
-d 指定文件后缀为数字,00 01 ...
例:
#split -b 1K shopping-table.sql /data/shopping-table
#ll /data -h
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tableaa
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tableab
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tableac
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tablead
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tableae
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tableaf
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tableag
-rw-r--r-- 1 root root 1.0K Jul 28 14:41 shopping-tableah
-rw-r--r-- 1 root root 1002 Jul 28 14:41 shopping-tableai#cat /data/shopping-table00* > /data 合并为一个
3.3cpio
-
cpio 是历史悠久的打包和解包工具,不过目前也已较少使用
-
cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio"或者“.tar”结尾的文件
格式:
cpio [选项] > 文件名或者设备名
cpio [选项] < 文件名或者设备名
常用选项:
-o output模式,打包,对内存的数据输出到文件中,将标准输入传入的文件名打包后发送到标准输出
-i input模式,解包,对磁盘里文件输入到内存,标准输入传入的打包文件名解包到当前目录
-t 预览,查看标准输入传入的打包文件中包含的文件列表
-o filename 输出到指定的归档文件名
-A 向已存在的归档文件中追加文件
-I filename 对指定的归档文件名解压
-F filename 使用指定的文件名替代标准输入或输出
-d 解包生成目录,在cpio还原时,自动建立目录
-v 显示打包过程中的文件名称
例:
#将etc目录备份
find ./etc -print | cpio -ov > bak.cpio#将/data内容追加bak.cpio
find /data | cpio -oA -F bak.cpio#内容预览
cpio -tv < etc.cpio#解包文件
cpio -idv < etc.cpio
相关文章:
Linux_6_文件查找与打包压缩
目录 文件查找与打包压缩1文件查找1.1 locate1.2 find1.2.1 指定搜索目录层级1.2.2对每个目录先处理目录内的文件,再处理目录本身1.2.3根据文件名和inode查找1.2.4 根据属主、属组查找1.2.5根据文件类型查找1.2.6空文件或目录1.2.7组合条件1.2.8 排除日录1.2.9根据文…...
JavaWeb_LeadNews_Day9-Redis实现用户行为
JavaWeb_LeadNews_Day9-Redis实现用户行为 网关配置点赞阅读不喜欢关注收藏文章详情-行为数据回显来源Gitee 网关配置 nacos: leadnews-app-gateway # 用户行为微服务 - id: leadnews-behavioruri: lb://leadnews-behaviorpredicates:- Path/behavior/**filters:- StripPrefi…...

IntelliJ IDEA2021.3.1 使用 MybatisCodeHelperPro插件
一、 下载 下载破解后的 MybatisCodeHelperPro 的 V3.2.2版本 V3.2.2-CSDN 或者 V3.2.2-Gitee 二、 应用 将下载下来的Zip文件 放到电脑上的某个位置 (最好放在Idea 管理插件的 plugins 下) 然后自从搜索 Idea如何从磁盘中应用插件 三、激活 由于已经破解过了 但是还是需要激活…...

el-date-picker 等 点击无反应不回显问题解决
如上图,编辑回显正常,但是时间控件在拖动过程中时间不会跟随改变。 解决办法: <el-date-picker input"onInput()" ...><el-input input"onInput()" ...>js中onInput() {this.$forceUpdate();},...

Ansible学习笔记12
playbook: playbook(剧本):是ansible用于配置、部署和管理被控节点的剧本,用于Ansible操作的编排。 使用的是yaml格式,(saltstack、elk、docker、docker-compose、k8s都会使用到yaml格式。&am…...
sqlmap中文文档
这是 sqlmap -hh的翻译,后续可能会对参数进行详细的示例 sqlmap 普通选项 -h, --help # 显示基本帮助信息并退出 -hh # 详细帮助信息 --versino # 版本 -v # 日志详细级别 0-60:只显示python错误以及严重的信息。1:同时显示基本信…...

【C++模拟实现】vector的模拟实现
【C模拟实现】vector的模拟实现 目录 【C模拟实现】vector的模拟实现vector模拟实现的标准代码vector模拟实现中的要点insert和erase会涉及到迭代器失效的问题vector深度剖析关于模版template< class InputIterator >使用memcpy拷贝问题 作者:爱写代码的刚子 …...

go学习part21(3)redis连接池
连接池 1.介绍 每次使用数据就就建立链接再关闭可以,但是如果有大量客户端频繁请求连接,大量创建连接和关闭会非常耗费资源。 所以就建立一个连接池,里面存放几个不关闭的连接,谁要用就分配给谁。 说明:通过Golang 对 Redis操…...

乐理-笔记
乐理笔记整理 1、前言2、认识钢琴键盘及音名3、升降号、还原号4、如何区分同一音名的不同键?5、各类音符时值的关系6、歌曲拍号7、拍号的强弱规律8、歌曲速度(BPM)9、附点音符10、三连音12、唱名与简谱数字13、自然大调(白键&…...

java八股文面试[数据库]——B树和B+树的区别
B树是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(logn)的时间复杂度进行查找、顺序读取、插入和删除等操作。 1、B树的特性 B树中允许一个结点中包含多个key,可以是3个、4个、5个甚至更多,并不确定,需要看具体的实…...

2、Nginx 安装
文章目录 2、Nginx 安装2.1 官网下载2.2 安装 nginx2.2.1 第一步2.2.2 第二步2.2.3 第三步,安装 nginx2.2.4 第四步,修改防火漆规则 【尚硅谷】尚硅谷Nginx教程由浅入深 志不强者智不达;言不信者行不果。 2、Nginx 安装 2.1 官网下载 nginx…...

最适合 AI 的 Python Web 框架
迷途小书童的 Note 读完需要 4分钟 速读仅需 2 分钟 1 简介 本文将介绍 Gradio 库,它是 Python 的一个 web 框架,可以帮助我们快速构建交互式 AI 应用。我们将了解 Gradio 的应用场景、基本原理、功能介绍,并通过一个代码示例来演示如何使用 …...
算法通关村第十八关——回溯
回溯很大感觉就是多重递归,在递归的题目中,例如斐波那契数列,只需要考虑当前情况以及他的子情况。而在回溯中,要进行很多次递归,并且要对条件进行处理。 LeetCode257:给你一个二叉树的根节点root,按任意顺序ÿ…...

使用kafka还在依赖Zookeeper,kraft模式了解下
Kafka的Kraft模式 概述 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。其核心组件包含Producer、Broker、Consumer,以及依赖的Zookeeper集群。其中Zookeeper集群是Kafka用来负责集群元数据的管理、控制器…...

【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作
目录 1 NumPy 基础概述 1.1 NumPy的主要特点和功能 1.2 NumPy 安装和导入 2 Numpy 数组 2.1 创建NumPy数组 2.2 数组的形状和维度 2.3 数组的数据类型 2.4 访问和修改数组元素 3 数组操作 3.1 数组运算 3.2 数学函数 3.3 统计函数 4 数组形状操作 4.1 重塑数组形…...
Day01-Java基础语法
目录 1. 人机交互 1.1 什么是cmd? 1.2 如何打开CMD窗口? 1.3 常用CMD命令 1.4 CMD练习 1.5 环境变量 2. Java概述 1.1 Java是什么? 1.2下载和安装 1.2.1 下载 1.2.2 安装 1.2.3 JDK的安装目录介绍 1.3 HelloWorld小案例 2.3.1 …...
代码随想录二刷day06
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣242. 有效的字母异位词二、力扣349. 两个数组的交集三、力扣202. 快乐数四、力扣1两数之和 前言 一、力扣242. 有效的字母异位词 class Solution {pub…...

可扩展的Blender插件开发汇总
成熟的 Blender 3D 插件是令人惊奇的事情。作为 Python 和 Blender 的新手,我经常发现自己被社区中的人们创造的强大的东西弄得目瞪口呆。坦率地说,其中一些包看起来有点神奇,当自我怀疑或冒名顶替综合症的唠叨声音被打破时,很容易想到“如果有人能做出可以做xxx的东西就好…...

2023_Spark_实验二:IDEA安装及配置
一、下载安装包 链接:百度网盘 请输入提取码 所在文件夹:大数据必备工具--》开发工具(前端后端)--》后端 下载文件名称:ideaIU-2019.2.3.exe (喜欢新版本也可安装新版本,新旧版本会存在部分差异) IDEA …...

小赢科技,寻找金融科技核心价
如果说金融是经济的晴雨表,是通过改善供给质量以提高经济质量的切入口,那么金融科技公司,就是这一切行动的推手。上半年,社会经济活跃程度提高背后,金融科技公司既是奉献者,也是受益者。 8月29日࿰…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...