Linux shell编程学习笔记40:stat命令

程序员必备的面试技巧

“程序员必备的面试技巧,就像是编写一段完美的代码一样重要。在面试战场上,我们需要像忍者一样灵活,像侦探一样聪明,还要像无敌铁金刚一样坚定。只有掌握了这些技巧,我们才能在面试的舞台上闪耀光芒,成为那个令HR们心动的程序猿!”

目录

  1. 0 前言
  2. 1 DOS、Windows、Linux中的文件存储
    1. 1.1 扇区
    2. 1.2 DOS、Windows:簇(Cluster)
    3. 1.3 Linux:块(block)和索引节点(inode)
  3. 2 stat命令的功能、格式和选项说明
    1. 2.1 stat命令的功能
    2. 2.2 stat命令的格式
    3. 2.3 stat命令的选项
  4. 3 stat命令使用实例
    1. 3.1 stat 文件或目录:查看文件或目录信息
    2. 3.2 stat -t 文件或目录:以简洁的形式显示文件或目录状态
    3. 3.3 stat -f 文件或目录:显示文件或目录的系统状态而不是文件或目录状态
    4. 3.4 stat -L 文件 或 stat --dereference 文件:取消对引用(跟随)符号链接显示并显示该符号链接指向的文件的信息
    5. 3.5 stat -c "格式" 文件 或 stat --format="格式" 文件 或 stat --printf="格式":自定义输出
  5. 4 其它查看Inodes的命令

0 前言

4 其它查看Inodes的命令

中,我们提到  df -i或--inodes的功能是 列出索引节点而不是块使用情况信息。

那么什么inode(索引节点)呢?我们一起来探讨看看……

1 DOS、Windows、Linux中的文件存储

1.1 扇区

文件一般是存储在磁盘上的,磁盘的最小存储单位叫做扇区(sector),每个扇区大小为512字节。

扇区是磁盘的最小存储单元。

1.2 DOS、Windows:簇(Cluster)

为了提高磁盘读取效率,操作系统通常会一次读取多个扇区的内容。

在微软的DOS、WINDOWS等操作系统中,把一次读取多个扇区称为簇(Cluster),簇是DOS、WINDOWS等操作系统中磁盘文件存储管理的最小单位。1个长度非0的文件,至少占用1簇的存储空间。

1.3 Linux:块(block)和索引节点(inode)

在Linux操作系统中,把一次读取多个扇区称为块(block),最常见的是4KB,即连续八个扇区组成一个块。文件数据存储在块中,块是Linux操作系统中文件存取的最小单位。

索引节点(inode)是文件元信息的存储区域,文件元信息包括以下信息,但不包含文件名,文件名存放在目录当中。

  • 文件的字节数
  • 文件拥有者的 User ID
  • 文件的 Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳,共有三个:ctime 指 inode 上一次变动的时间,mtime 指文件内容上一次变动的时间,atime 指文件上一次打开的时间。
  • 链接数,即有多少文件名指向这个 inode
  • 文件数据 block 的位置

Linux系统内部不使用文件名,而是使用索引节点号码识别文件。对于系统来说文件名只是为便于识别索引节点号码而使用的别称。

在Linux系统中,一个文件必须占用一个索引节点(inode),占用至少一个块(block)。

要查看索引节点(inode)的信息,除了使用df命令,我们还可以使用stat命令。

2 stat命令的功能、格式和选项说明

我们可以使用 stat --help命令查看 stat 命令的帮助信息。

purpleEndurer @ bash $ stat --help
Usage: stat [OPTION]... FILE...
Display file or file system status.

Mandatory arguments to long options are mandatory for short options too.
  -L, --dereference     follow links
  -f, --file-system     display file system status instead of file status
  -c  --format=FORMAT   use the specified FORMAT instead of the default;
                          output a newline after each use of FORMAT
      --printf=FORMAT   like --format, but interpret backslash escapes,
                          and do not output a mandatory trailing newline;
                          if you want a newline, include \n in FORMAT
  -t, --terse           print the information in terse form
      --help     display this help and exit
      --version  output version information and exit

The valid format sequences for files (without --file-system):

  %a   access rights in octal
  %A   access rights in human readable form
  %b   number of blocks allocated (see %B)
  %B   the size in bytes of each block reported by %b
  %C   SELinux security context string
  %d   device number in decimal
  %D   device number in hex
  %f   raw mode in hex
  %F   file type
  %g   group ID of owner
  %G   group name of owner
  %h   number of hard links
  %i   inode number
  %m   mount point
  %n   file name
  %N   quoted file name with dereference if symbolic link
  %o   optimal I/O transfer size hint
  %s   total size, in bytes
  %t   major device type in hex, for character/block device special files
  %T   minor device type in hex, for character/block device special files
  %u   user ID of owner
  %U   user name of owner
  %w   time of file birth, human-readable; - if unknown
  %W   time of file birth, seconds since Epoch; 0 if unknown
  %x   time of last access, human-readable
  %X   time of last access, seconds since Epoch
  %y   time of last modification, human-readable
  %Y   time of last modification, seconds since Epoch
  %z   time of last change, human-readable
  %Z   time of last change, seconds since Epoch

Valid format sequences for file systems:

  %a   free blocks available to non-superuser
  %b   total data blocks in file system
  %c   total file nodes in file system
  %d   free file nodes in file system
  %f   free blocks in file system
  %i   file system ID in hex
  %l   maximum length of filenames
  %n   file name
  %s   block size (for faster transfers)
  %S   fundamental block size (for block counts)
  %t   file system type in hex
  %T   file system type in human readable form

NOTE: your shell may have its own version of stat, which usually supersedes
the version described here.  Please refer to your shell's documentation
for details about the options it supports.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Report stat translation bugs to <http://translationproject.org/team/>
For complete documentation, run: info coreutils 'stat invocation'
purpleEndurer @ bash $ 

2.1 stat命令的功能

显示文件或文件系统状态。

2.2 stat命令的格式

stat [选项]... 文件...

注意:

1.使用stat命令必须指定要显示信息的文件

purpleEndurer @ bash $ stat
stat: missing operand
Try 'stat --help' for more information.
purpleEndurer @ bash $ 

2.不同的Linux shell 可能会有自己的 stat 版本,请参阅自己所用的 shell 的文档了解有关其支持的选项的详细信息。 

2.3 stat命令的选项

选项功能

-L

--dereference

取消对引用(跟随)符号链接显示并显示该符号链接指向的文件的信息

-f

--file-system

显示文件系统状态而不是文件状态

-c FORMAT

--format=FORMAT

使用指定的 FORMAT 而不是默认值; 每次使用 FORMAT 后输出换行符
--printf=FORMAT与 --format 类似,但解释反斜杠转义,并且不输出强制性的尾随换行符; 如果需要换行符,请在 FORMAT 中包含 n

-t

--terse

以简洁的形式打印信息
--help显示此帮助并退出
--version输出版本信息并退出

3 stat命令使用实例

3.1 stat 文件或目录:查看文件或目录信息

例3.1.1:在当前目录下用mkdir命令创建test目录并用stat查看test目录的信息

purpleEndurer @ bash $ mkdir test
purpleEndurer @ bash $ stat test
  File: ‘test’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 4ch/76d Inode: 1319986     Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 1000/    csdn)   Gid: ( 1000/    csdn)
Access: 2024-01-17 19:23:39.555845513 +0800
Modify: 2024-01-17 19:23:39.555845513 +0800
Change: 2024-01-17 19:23:39.555845513 +0800
 Birth: -
purpleEndurer @ bash $ 

 命令返回了如下信息:

  • File:文件名
  • Size:文件大小,以字节表示
  • Blocks:文件占用(已分配)的块数。
  • IO Block:文件系统块大小
  • directory:文件类型(普通文件、目录、文件系统)
  • Device:文件所在的设备(十六进制和十进制)
  • Inode:文件所在的 Inode 号
  • Links:与文件关联的硬链接数
  • Access (0775/drwxrwxr-x)  :数字/符号格式的文件权限
  • UID:所有者的用户ID和用户名
  • GID:所有者的群组ID和组名
  • Access 2024-01-17 19:23:39.555845513 +0800上次访问文件的时间
  • Modify 2024-01-17 19:23:39.555845513 +0800:上次修改文件内容的时间
  • Change 2024-01-17 19:23:39.555845513 +0800:上次更改文件文件元数据的时间
  • Birth:文件状态被更改的的时间戳,Linux不支持

例3.1.2 在当前目录创建文件test.txt并用并用stat查看test.txt文件的信息

purpleEndurer @ bash $ ls > test.txt
purpleEndurer @ bash $ stat test.txt
  File: ‘test.txt’
  Size: 27              Blocks: 8          IO Block: 4096   regular file
Device: 4ch/76d Inode: 1319971     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    csdn)   Gid: ( 1000/    csdn)
Access: 2024-01-17 19:40:48.612393492 +0800
Modify: 2024-01-17 19:40:48.613393535 +0800
Change: 2024-01-17 19:40:48.613393535 +0800
 Birth: -
purpleEndurer @ bash $ 

对于文件,stat显示的信息不同之处在于:

  • directory:普通文件

3.2 stat -t 文件或目录:以简洁的形式显示文件或目录状态

例3.2 分别以stat -t 和 stat 命令查看文件test.txt 的状态 

purpleEndurer @ bash $ ls > test.txt
purpleEndurer @ bash $ stat -t test.txt
test.txt 14 8 81b4 1000 1000 4c 1319933 1 0 0 1705553539 1705553539 1705553539 0 4096

purpleEndurer @ bash $ stat test.txt
  File: ‘test.txt’
  Size: 14              Blocks: 8          IO Block: 4096   regular file
Device: 4ch/76d Inode: 1319933     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    csdn)   Gid: ( 1000/    csdn)
Access: 2024-01-18 12:52:19.515288704 +0800
Modify: 2024-01-18 12:52:19.516288743 +0800
Change: 2024-01-18 12:52:19.516288743 +0800
 Birth: -
purpleEndurer @ bash $ 

3.3 stat -f 文件或目录:显示文件或目录的系统状态而不是文件或目录状态

例3.3.1 查看test目录的文件系统状态

purpleEndurer @ bash $ stat -f test
  File: "test"
    ID: d52c0294601b7508 Namelen: 255     Type: overlayfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 7584002    Free: 6796649    Available: 6441294
Inodes: Total: 1933312    Free: 1870694
purpleEndurer @ bash $ 

 

命令返回信息包括以下内容: 

  • File:文件名。
  • ID:十六进制文件系统ID。
  • Namelen: 文件名称最大的长度。
  • Fundamental block size: 文件系统上每个块大小。
  • Blocks:块信息,包括以下内容:
  1. Total:文件系统中的总块数。
  2. Free:文件系统中可用的块数。
  3. Available:非root用户可用的可用块数。
  • Inodes:索引节点信息,包括以下内容:
  1. Total :文件系统中的总索引节点数。
  2. Free:文件系统中空闲索引节点的数量。

例3.3.2 查看文件test.txt的文件系统状态

purpleEndurer @ bash $ stat -f test.txt
  File: "test.txt"
    ID: d52c0294601b7508 Namelen: 255     Type: overlayfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 7584002    Free: 6796654    Available: 6441299
Inodes: Total: 1933312    Free: 1870694
purpleEndurer @ bash $ 

3.4 stat -L 文件 或 stat --dereference 文件:取消对引用(跟随)符号链接显示并显示该符号链接指向的文件的信息

例 3.4.1 用stat命令查看文件 /usr/share/zoneinfo/America/Cayman 的信息

purpleEndurer @ bash $ stat /usr/share/zoneinfo/America/Cayman
  文件:'/usr/share/zoneinfo/America/Cayman' -> 'Panama'
  大小:6          块:0          IO 块:4096   符号链接
设备:802h/2050d Inode:1986380     硬链接:1
权限:(0777/lrwxrwxrwx)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2024-01-18 12:30:25.329503131 +0800
最近更改:2021-05-25 16:19:07.819859046 +0800
最近改动:2021-05-25 16:19:07.819859046 +0800
创建时间:-

从命令返回信息可以看到,/usr/share/zoneinfo/America/Cayman 的文件类型是符号链接,文件大小只有6个字节,指向的文件是 Panama 

要想获取/usr/share/zoneinfo/America/Cayman  指向的文件  Panama 的信息,可以使用 -L选项。

例 3.4.2 用stat -L 命令查看文件  /usr/share/zoneinfo/America/Cayman 的信息

purpleEndurer @ bash $ stat -L /usr/share/zoneinfo/America/Cayman
  文件:'/usr/share/zoneinfo/America/Cayman'
  大小:203        块:8          IO 块:4096   普通文件
设备:802h/2050d Inode:1986451     硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2023-05-06 12:37:04.230304278 +0800
最近更改:2019-10-13 09:36:01.000000000 +0800
最近改动:2021-05-25 16:19:07.835859046 +0800
创建时间:-

返回信息表示这个文件的大小是203字节,文件类型是普通文件,那么这是不是文件  Panama 的信息呢?

例 3.4.3 用stat命令查看文件 /usr/share/zoneinfo/America/Panama  的信息

purpleEndurer @ bash $ stat -L /usr/share/zoneinfo/America/Panama
  文件:'/usr/share/zoneinfo/America/Panama'
  大小:203        块:8          IO 块:4096   普通文件
设备:802h/2050d Inode:1986451     硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2023-05-06 12:37:04.230304278 +0800
最近更改:2019-10-13 09:36:01.000000000 +0800
最近改动:2021-05-25 16:19:07.835859046 +0800
创建时间:-

命令返回的文件信息与例 3.4.2中的信息是一致的。

 3.5 stat -c "格式" 文件 或 stat --format="格式" 文件 或 stat --printf="格式":自定义输出

stat命令有两个选项,可让我们根据需要自定义输出:-c "格式" (--format="格式")和 --printf="格式"

其中的格式 可以使用许多文件和文件系统的格式指令:

  • %a 以八进制格式显示访问权限。

  • %A 以易于阅读的格式显示访问权限。

  • %b 这是分配的块数(请参见%B)。

  • %B 由%b报告的每个块的字节大小。

  • %C 显示SELinux安全上下文字符串。

  • %d 以十进制格式显示设备编号。

  • %D 十六进制格式的设备号。

  • %f 以十六进制显示原始模式。

  • %F 显示文件类型。

  • %g 打印所有者的组ID。

  • %G 打印所有者的组名。

  • %h 显示硬链接数。

  • %i 打印出索引节点号。

  • %m 打印安装点。

  • %n 显示文件的文件名

  • %N 显示带符号引用的文件名,如果使用符号链接则取消引用

  • %o 打印最佳I/O传输大小提示。

  • %s 总大小(以字节为单位)。

  • %t 主要设备类型(十六进制),用于字符/块设备特殊文件

  • %T 次要设备类型(十六进制),用于字符/块设备特殊文件

  • %u 显示所有者的用户ID。

  • %U 打印所有者的用户名。

  • %w 显示文件的产生时间,易于阅读;–如果未知。

  • %W 打印文件诞生的时间,距离纪元后的秒数;如果未知,则为0。

  • %x 上次访问的时间,易于我们理解的格式。

  • %X 上次访问的时间,距离纪元以来的秒数。

  • %y 显示上次修改的最后时间,便于阅读。

  • %Y 打印上次修改的时间,距离纪元以来的秒数。

  • %z 这是上次更改的时间,人类可以理解。

  • %Z 最后一次更改的时间,距离纪元以来的秒数。

这两个选项的区别在于:

  • 当两个或多个文件用作操作符时,--format在每个操作数的输出之后自动添加换行符。 
  • --printf解释反斜杠转义字符。

例 3.5.1 用stat -c命令显示Code目录和test.txt 的文件类型、所有者的组ID和组名信息。

purpleEndurer @ bash $ stat -c "%F,%g,%G" Code test.txt
directory,1000,csdn
regular file,1000,csdn
purpleEndurer @ bash $ 

例3.5.2 用stat --printf命令显示Code目录和test.txt 的文件类型、所有者的组ID和组名信息。

purpleEndurer @ bash $ stat --printf "%F,%g,%G" Code test.txt
directory,1000,csdnregular file,1000,csdnpurpleEndurer @ bash $ 

 

可见,返回的目录和文件信息在同一行,不容易区分,因此我们可以改进一下,在格式串末尾加上换行符\n:

purpleEndurer @ bash $ stat --printf "%F,%g,%G\n" Code test.txt
directory,1000,csdn
regular file,1000,csdn
purpleEndurer @ bash $ 

这样看起来就清晰多了。

4 其它查看Inodes的命令

除了上节介绍的df -i或--inodes命令,以及本节介绍的 stat命令,我们还可以使用ls -i命令。

例如,查看当目前下的目录和文件的inodes:

purpleEndurer @ bash $ ls -i
1051744 Code  1319965 test.txt
purpleEndurer @ bash $ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/332119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT-贪吃小游戏

QT-贪吃小游戏 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "Snake.h" #include "Food.h" #include "Stone.h" #include "Mushroom.h" #include "Ai.h" #include "Game.h" #inclu…

[Linux 进程(五)] 程序地址空间深度剖析

文章目录 1、前言2、什么是进程地址空间&#xff1f;3、进程地址空间的划分4、虚拟地址与物理地址的关系5、页表的作用扩展 6、为什么要有地址空间&#xff1f; 1、前言 Linux学习路线比较线性&#xff0c;也比较长&#xff0c;因此一个完整的知识点学习就会分布在两篇文章中&…

zabbix客户端配置及自定义监控

部署zabbix客户机 1.服务端和客户端都配置时间同步 yum install -y ntpdate ntpdate -u ntp.aliyun.com 2.服务端和客户端都设置 hosts 解析 cat > /etc/hosts << EOF 172.16.23.16 localhost 172.16.23.17 zbx-server EOF 3.被监控端 //设置 zabbix 的下载源&…

年龄性别预测1:年龄性别数据集说明(含下载地址)

年龄性别预测1&#xff1a;年龄性别数据集说明(含下载地址) 目录 年龄性别预测1&#xff1a;年龄性别数据集说明(含下载地址) 1.前言 2.MegaAge_Asian 3.MORPH 4.IMDB-WIKI 5.数据集下载 6.年龄性别预测和识别(Python/C/Android) 1.前言 本项目将实现年龄性别预测和识…

『 C++ 』红黑树RBTree详解 ( 万字 )

文章目录 &#x1f996; 红黑树概念&#x1f996; 红黑树节点的定义&#x1f996; 红黑树的插入&#x1f996; 数据插入后的调整&#x1f995; 情况一:ucnle存在且为红&#x1f995; 情况二:uncle不存在或uncle存在且为黑&#x1f995; 插入函数代码段(参考)&#x1f995; 旋转…

【C++入门】C++ STL中string常用函数用法总结

目录 前言 1. string使用 2. string的常见构造 3. string类对象的访问及遍历 迭代器遍历&#xff1a; 访问&#xff1a; 4. string类对象的容量操作 4.1 size和length 4.2 clear、empty和capacity 4.3 reserve和resize reserve resize 5. string类对象的修改操作 push_back o…

version-polling一款用于实时检测 web 应用更新的 JavaScript 库

为了解决后端部署之后&#xff0c;如何通知用户系统有新版本&#xff0c;并引导用户刷新页面以加载最新资源的问题。 实现原理 1.使用 Web Worker API 在浏览器后台轮询请求页面&#xff0c;不会影响主线程运行。 2.命中协商缓存&#xff0c;对比本地和服务器请求响应头etag字…

施耐德PLCTM200CE 如何实现远程上传下载程序?

准备工作 一台可联网操作的电脑一台单网口的远程透传网关及博达远程透传配置工具网线一条&#xff0c;用于实现网络连接和连接PLC一台施耐德TM200CE PLC及其编程软件一张4G卡或WIFI天线实现通讯(使用4G联网则插入4G SIM卡&#xff0c;WIFI联网则将WIFI天线插入USB口&#xff0…

Unity3D和three.js的比较

一、Unity3D和three.js简介 Unity3D是一款跨平台的游戏引擎,可以用于开发2D和3D游戏。它提供了一个可视化的开发环境,包含了强大的编辑器和工具,使开发者可以方便地创建游戏场景、添加物体、设置物理效果、编写脚本等。Unity3D支持多种平台,包括PC、移动设备、主机等,可以…

HBuilder 创建的 Uui-App项目 如何发布到微信小程序

需提前准备的工具&#xff1a;HBuilder X &#xff0c;微信开发者工具 目录 一、微信小程序账号申请 二、在微信开发者工具中打开服务端口 三、 在HBuilder创建Uni-App项目&#xff0c;并与微信小程序开发工具进行交互预览测试 四、 发布Uni-App项目 五、 微信线上发布运行 …

PXE和kickstart无人值守安装

PXE高效批量网络装机 引言 1.系统装机的引导方式 启动 操作 系统 1.硬盘 2.光驱&#xff08;u盘&#xff09; 3.网络启动 pxe 重装系统&#xff1f; 在已有操作系统 新到货了一台服务器&#xff0c; 装操作系统 系统镜像 u盘 光盘 pe&#xff1a; 小型的 操作系统 在操…

(一)SpringBoot3---尚硅谷总结

示例Demo&#xff1a; 1、我们先来创建一个空工程&#xff1a; 2、我们通过Maven来创建一个Module&#xff1a; JDK版本需要选择17以及以上&#xff0c;如果没有的话你就下载一个&#xff1a; 3、让此Maven项目继承父项目: 所有的Springboot项目都必须继承自spring-boot-start…

【PS】PS设计图欣赏、学习、借鉴

【PS】PS设计图欣赏、学习、借鉴 bilibili萌新PS学习计划&#xff1a;PS教程全套零基础教学视频&#xff08;全套81节全新版本&#xff09;

编译FFmpeg4.3.1 、x264并移植到Android

1、前言 FFmpeg 既是一款音视频编解码工具&#xff0c;同时也是一组音视频编解码开发套件。 2、准备工作 系统&#xff1a;LinuxNDK&#xff1a;android-ndk-r21b-linux-x86_64.zipFFmpeg&#xff1a;ffmpeg-snapshot.tar.bz2x264&#xff1a;x264 3、下载NDK 在linux环境中…

window11环境安装jdk17并配置环境变量

目录 一、下载地址二、安装步骤三、环境变量配置四、环境变量配置是否成功的测试 一、下载地址 https://www.oracle.com/java/technologies/downloads/#jdk17-windows 二、安装步骤 双击已下载的 jdk-17_windows-x64_bin.exe 安装包&#xff0c;点击【下一步】&#xff0c;…

Python-基础篇-类与对象/面向对象程序设计-py脚本

面向对象基础 第一个面向对象 class Cat:def eat(self):print("小猫爱吃鱼")def drink(self):print("小猫要喝水")# 创建猫对象 tom Cat()tom.eat() tom.drink()print(tom)addr id(tom) print("%x" % addr)新建两个猫对象 class Cat:def ea…

Docker安装与启动

Docker概述 Docker是一个快速交付应用、运行应用的技术&#xff1a; 可以将程序及其依赖、运行环境一起打包为一个镜像&#xff0c;可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器&#xff0c;各个应用互不干扰启动、移除都可以通过一行命令完成&#xff0c;方便…

力扣精选算法100题——找到字符串中所有字母异位词(滑动窗口专题)

本题链接&#x1f449;找到字符串中所有字母异位词 第一步&#xff1a;了解题意 给定2个字符串s和p&#xff0c;找到s中所有p的变位词的字串&#xff0c;就是p是"abc",在s串中找到与p串相等的字串&#xff0c;可以位置不同&#xff0c;但是字母必须相同&#xff0c;比…

ChatGPT 未来学习手册

原文&#xff1a;Learn ChatGPT: The Future of Learning 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 “学习 ChatGPT”是任何对人工智能在教育中的作用感兴趣的人必读的书。这本开创性的书探讨了 ChatGPT 的潜力&#xff0c;这是一个强大的人工智能平台&#xff0…

macOS向ntfs格式的移动硬盘写数据

最近想把日常拍摄的照片从SD存储卡中转存到闲置的移动硬盘中&#xff0c;但是转存的时候发现&#xff0c;mac只能读我硬盘里的东西&#xff0c;无法将数据写入到移动硬盘中&#xff0c;也无法删除移动硬盘的数据。后来在网上查了许久资料&#xff0c;终于可实现mac对移动硬盘写…