当前位置: 首页 > news >正文

现代操作系统上创建各类链接的方法汇总

文章目录

  • 现代操作系统上创建各类链接的方法汇总
    • windows: cmd下的`mklink`创建链接
      • 示例
    • powershell 创建链接
      • 创建常规文件和目录
      • 创建链接
    • linux shell 创建硬链接
      • NAME
      • SYNOPSIS
      • 详细说明
      • 常用选项
      • 示例
    • 检查与辨识符号链接🎈
      • linux下检查
        • ls -l 命令
        • file 命令
      • windows下检查
        • cmd下dir命令查看
        • powershell来查看符号连接的类型与其target👺
        • powershell函数
      • 硬链接计数
    • linux:硬连接和软连接的对比
      • ls -li
      • ls -l
    • powershell/bash命令行中查看目录项目的文件模式👺
      • powershell获取DirectoryInfo信息
      • 非普通文件/目录示例
        • 其他
      • 基础权限标识
      • 权限位(Linux风格)
      • Windows特定权限标识
      • 查看文件模式
    • FAQ
      • 使用限制
      • 重设符号链接的target
      • 中间环境变量对符号链接创建的影响

现代操作系统上创建各类链接的方法汇总

windows: cmd下的mklink创建链接

  • mklink | Microsoft Learn

    • mklink是cmd下的命令,powershell无法直接调用

    • 如果需要在powershell执行mklink命令,需要借助cmd /c mklink来代替mklink

    • 当然powershell也有自己的创建符号的方法,即New-item方法,用不上古老的mklink,这部分放到后面介绍

    • mklink虽然比较古老,但是兼容性好,支持windows vista等老系统

  • mklink:三种模式可以创建不同的链接符号.详情查看文档

  • C:\Users\cxxu\AppData\Local>mklink /?
    Creates a symbolic link.MKLINK [[/D] | [/H] | [/J]] Link Target/D      Creates a directory symbolic link.  Default is a filesymbolic link./H      Creates a hard link instead of a symbolic link./J      Creates a Directory Junction.Link    Specifies the new symbolic link name.Target  Specifies the path (relative or absolute) that the new linkrefers to.
    

示例

PS☀️[BAT:71%][MEM:23.99% (7.61/31.71)GB][20:48:05]
# [cxxu@COLORFULCXXU][~\Desktop]
PS> cmd /c mklink /d symbolDir T:\DirInFat32\
symbolic link created for symbolDir <<===>> T:\DirInFat32\PS☀️[BAT:71%][MEM:23.97% (7.6/31.71)GB][20:48:34]
# [cxxu@COLORFULCXXU][~\Desktop]
PS> lsDirectory: C:\Users\cxxu\DesktopMode                LastWriteTime         Length Name
----                -------------         ------ ----
l----         2024/5/28     20:48                  symbolDir 󰁕 T:\DirInFat32\

powershell 创建链接

New-Item 是 PowerShell 中用于创建新的文件系统对象(如文件和目录)的命令。通过指定 -Type 参数,可以创建不同类型的项目。

创建常规文件和目录

以下是各类型的详细解释:

  1. File(文件):创建一个新的文件。例如,你可以使用 New-Item -Path "C:\Example\newfile.txt" -ItemType File 来创建一个名为 newfile.txt 的文件。

    示例:

    New-Item -Path "C:\Example\newfile.txt" -ItemType File
    

    这将创建一个空文件 newfile.txtC:\Example 目录下。

  2. Directory(目录):创建一个新的文件夹或目录。例如,你可以使用 New-Item -Path "C:\Example\NewFolder" -ItemType Directory 来创建一个名为 NewFolder 的目录。

    示例:

    New-Item -Path "C:\Example\NewFolder" -ItemType Directory
    

    这将在 C:\Example 目录下创建一个新的文件夹 NewFolder

创建链接

  1. SymbolicLink(符号链接):创建一个符号链接,类似于 Unix 系统中的软链接。符号链接是指向另一个文件或目录的快捷方式。例如,你可以使用 New-Item -Path "C:\LinkToFile.txt" -ItemType SymbolicLink -Target "C:\OriginalFile.txt" 来创建一个指向 C:\OriginalFile.txt 的符号链接。

    示例:

    New-Item -Path "C:\LinkToFile.txt" -ItemType SymbolicLink -Target "C:\OriginalFile.txt"
    

    这将创建一个符号链接 LinkToFile.txt,它指向 C:\OriginalFile.txt

  2. Junction(连接点):创建一个目录连接点,可以将一个目录链接到另一个目录。例如,你可以使用 New-Item -Path "C:\JunctionLink" -ItemType Junction -Target "C:\OriginalFolder" 来创建一个指向 C:\OriginalFolder 的目录连接点。

    示例:

    New-Item -Path "C:\JunctionLink" -ItemType Junction -Target "C:\OriginalFolder"
    

    这将在 C:\JunctionLink 创建一个目录连接点,它指向 C:\OriginalFolder

  3. HardLink(硬链接):创建一个硬链接,硬链接是文件系统中同一个文件的多个路径名,多个硬链接指向相同的数据块。例如,你可以使用 New-Item -Path "C:\HardLinkToFile.txt" -ItemType HardLink -Target "C:\OriginalFile.txt" 来创建一个指向 C:\OriginalFile.txt 的硬链接。

    示例:

    New-Item -Path "C:\HardLinkToFile.txt" -ItemType HardLink -Target "C:\OriginalFile.txt"
    

    这将创建一个硬链接 HardLinkToFile.txt,它与 C:\OriginalFile.txt 指向同一个数据块。

这些命令中的每一个都允许你在文件系统中创建不同类型的对象,以便更好地管理和组织文件和目录。

linux shell 创建硬链接

  • ln(1) - Linux manual page (man7.org)

  • NAMEln - make links between filesSYNOPSISln [OPTION]... [-T] TARGET LINK_NAMEln [OPTION]... TARGETln [OPTION]... TARGET... DIRECTORYln [OPTION]... -t DIRECTORY TARGET...DESCRIPTIONIn  the  1st  form,  create a link to TARGET with the name LINK_NAME.  In the 2ndform, create a link to TARGET in the current  directory.   In  the  3rd  and  4thforms,  create  links to each TARGET in DIRECTORY.  Create hard links by default,symbolic links with --symbolic.  By default, each destination (name of new  link)should  not  already  exist.   When  creating hard links, each TARGET must exist.Symbolic links can hold arbitrary text; if later resolved, a relative link is in‐terpreted in relation to its parent directory.Mandatory arguments to long options are mandatory for short options too.--backup[=CONTROL]make a backup of each existing destination file-b     like --backup but does not accept an argument-d, -F, --directoryallow the superuser to attempt to hard link directories (note: will proba‐bly fail due to system restrictions, even for the superuser)-f, --forceremove existing destination files....

ln 命令用于在文件之间创建链接。链接可以是硬链接(hard link)或者符号链接(symbolic link)。以下是ln命令的基本用法及其各个选项的详细说明。

NAME

ln - 在文件之间创建链接

SYNOPSIS

  1. ln [OPTION]... [-T] TARGET LINK_NAME
  2. ln [OPTION]... TARGET
  3. ln [OPTION]... TARGET... DIRECTORY
  4. ln [OPTION]... -t DIRECTORY TARGET...

详细说明

  1. ln [OPTION]... [-T] TARGET LINK_NAME

这个用法是创建一个名为LINK_NAME的链接,指向TARGET文件或目录。

  • TARGET:目标文件或目录。
  • LINK_NAME:链接名称。

示例:

ln -s /path/to/file /path/to/symlink

在这个示例中,-s选项表示创建一个符号链接(symbolic link),/path/to/file是目标文件,/path/to/symlink是链接名称。

  1. ln [OPTION]... TARGET

这个用法是创建一个指向TARGET的硬链接。默认情况下,链接名称与TARGET相同,但创建在当前目录中。

  • TARGET:目标文件。

示例:

ln file1

在当前目录中创建一个名为file1的硬链接,指向file1文件。

  1. ln [OPTION]... TARGET... DIRECTORY

这个用法是将一个或多个目标文件TARGET链接到指定的目录DIRECTORY中。每个链接将保留目标文件的名称。

  • TARGET...:一个或多个目标文件。
  • DIRECTORY:目标目录。

示例:

ln file1 file2 /path/to/directory

/path/to/directory目录中创建两个硬链接,分别指向file1file2

  1. ln [OPTION]... -t DIRECTORY TARGET...

这个用法与上一个用法类似,但在选项中显式指定目标目录DIRECTORY

  • DIRECTORY:目标目录。
  • TARGET...:一个或多个目标文件。

示例:

ln -t /path/to/directory file1 file2

/path/to/directory目录中创建两个硬链接,分别指向file1file2

常用选项

  • -s, --symbolic:创建符号链接而不是硬链接。
  • -f, --force:强制覆盖已经存在的链接。
  • -n, --no-dereference:在目标是符号链接时,不要跟随目标。
  • -T, --no-target-directory:将链接视为文件而不是目录。
  • -t DIRECTORY, --target-directory=DIRECTORY:将链接创建在指定的目录中。

示例

  1. 创建硬链接:
ln file1 file2

创建一个名为file2的硬链接,指向file1

  1. 创建符号链接:
ln -s file1 symlink

创建一个名为symlink的符号链接,指向file1

  1. 在指定目录中创建链接:
ln file1 file2 /path/to/directory

/path/to/directory目录中创建两个硬链接,分别指向file1file2

  1. 强制覆盖已经存在的链接:
ln -sf file1 existing_symlink

创建一个名为existing_symlink的符号链接,指向file1,并覆盖已有的existing_symlink

以上是ln命令的基本用法及常用选项的详细介绍。如果需要更多帮助,可以使用man ln命令查看手册页。

检查与辨识符号链接🎈

  • shell script - Determining if a file is a hard link or symbolic link? - Unix & Linux Stack Exchange

主要是针对SymbolicLink的检查,而windows上还可以检查junction类型的链接

而HardLink由于其特点而不像其他类型链接那样容易检查,但是可以计数一个文件具有多少个Hardlink

linux下检查

ls -l 命令

该选项可以检查某个目录下的symbolic link
链接会以箭头指示

# cxxu @ cxxuAli in /usr/bin [15:34:47] C:130
$ ls -1l python*
...
lrwxrwxrwx 1 root root      16 Oct 25  2018 python3-config -> python3.6-config
lrwxrwxrwx 1 root root      10 Feb  8 14:51 python3m -> python3.6m
lrwxrwxrwx 1 root root      17 Oct 25  2018 python3m-config -> python3.6m-config
file 命令
  • 该命令可能需要手动安装
  • 可以识别出symbolic link以及链接的target.
# cxxu @ cxxuAli in /usr/bin [15:37:52]
$ file python3
python3: symbolic link to python3.6

windows下检查

cmd下dir命令查看
  • 两种方式执行dir

    • 在cmd下直接执行dir

      • 对于powershell用户,可以在powershell中输入cmd即可切换到cmd,然后执行dir
    • 在powershell下直接执行cmd /c dir

    PS C:\Users\cxxu\AppData\Local> cmd /c dirVolume in drive C is win11Volume Serial Number is EC48-2060Directory of C:\Users\cxxu\AppData\Local2023/05/24  15:12    <DIR>          .
    2023/03/05  13:59    <DIR>          0install.net
    ...
    2023/05/24  15:12    <JUNCTION>     Android [\??\D:\Android]
    ...
    2023/04/07  18:15    <DIR>          cache
    2023/01/20  11:35    <DIR>          calibre-cache
    ..
    2023/05/24  20:37    <SYMLINKD>     android_test [D:\android]
    ...
    
    • 可以看到,junction类型和symbol的类型链接被显示出来.
powershell来查看符号连接的类型与其target👺
  • ls | Format-Table name,LinkType,Target,其中Format-Table可以简写为ft

  • PS C:\Users\cxxu> ls |where {$_.LinkType}|ft name,LinkType,LinkTarget,ModeName         LinkType     LinkTarget
    ----         --------     ----------
    android_test SymbolicLink D:\android
    downloads    Junction     D:\usersByCxxu\DownloadsAll\
    ser          Junction     D:\repos\ccser\emotion-recognition-using-speech
    
  • 过滤掉(不显示)非链接类型

    • Get-ChildItem | Sort-Object -Property target -Descending | Select-Object name, linktype, target|where {$_.Target }

    • PS C:\Users\cxxu> Get-ChildItem | Sort-Object -Property target -Descending | Select-Object name, linktype, target|where {$_.Target }Name         LinkType     Target
      ----         --------     ------
      downloads    Junction     D:\usersByCxxu\DownloadsAll\
      ser          Junction     D:\repos\ccser\emotion-recognition-using-speech\
      android_test SymbolicLink D:\android
      
powershell函数
function Get-LinksOfType
{<# .SYNOPSIS查看指定类型的链接,以表格的形式输出(包括:name,linktype,linktarget)可用的类型包括:hardlink,symboliclink,junction默认不区分大小写..EXAMPLEPS☀️[BAT:71%][MEM:36.25% (11.49/31.71)GB][22:20:59]# [cxxu@COLORFULCXXU][~\Desktop]PS> pwshPowerShell 7.4.2PS C:\Users\cxxu\Desktop> get-LinksOfType -Directory C:\Users\cxxu -LinkType symboliclinkName  LinkType     LinkTarget Mode----  --------     ---------- ----repos SymbolicLink C:\repos   l----.EXAMPLEPS C:\Users\cxxu\Desktop> get-LinksOfType -Directory ./ -LinkType symboliclinkName             LinkType     LinkTarget     Mode----             --------     ----------     ----symbolDir        SymbolicLink T:\DirInFat32\ l----TestSymbolicLink SymbolicLink U:\demo.txt    la---.EXAMPLEPS C:\Users\cxxu\Desktop> get-LinksOfTypeName             LinkType     LinkTarget                             Mode----             --------     ----------                             ----demoHardlink.txt HardLink                                            la---demoJunctionDir  Junction     C:\Users\cxxu\desktop\testDir\innerDir l----symbolDir        SymbolicLink T:\DirInFat32\                         l----TestSymbolicLink SymbolicLink U:\demo.txt                            la---#>param([Alias('D')]$Directory = '.',[validateset( 'symboliclink', 'junction', 'hardlink' , 'all')]$LinkType = 'all')$all = Get-ChildItem $Directory | Where-Object { $_.LinkType } | Sort-Object -Property LinkType$Specifiedtype = $all | Where-Object { $_.LinkType -eq $linkType } $res = ($LinkType -eq 'all') ? $all : $Specifiedtype$res = $res | Format-Table name, LinkType, LinkTarget,Modereturn $res
}

硬链接计数

在大多数UNIX和Linux文件系统中,每个inode维护了一个链接计数(link count),表示有多少个硬链接指向该inode。这个链接计数反映了通过不同文件名访问相同文件内容的数量。

  • 当你创建一个文件时,其inode的链接计数默认为1。
  • 每增加一个硬链接到该文件,inode的链接计数就加1。
  • 当你删除(unlink)一个硬链接(不是通过删除命令rm原文件)时,相应inode的链接计数减1。
  • 只有当inode的链接计数降为0时,文件系统才会真正释放该inode及其所占用的磁盘空间,这意味着文件内容被永久删除。

这种机制确保了文件数据的安全性,即使你误删了一个硬链接,只要还有其他硬链接存在,文件数据就不会丢失。这也是硬链接与软链接(符号链接)的一个重要区别,因为软链接是独立的文件实体,有自己的inode和存储空间,对软链接的删除不会影响原始文件的链接计数。

linux:硬连接和软连接的对比

#创建硬链接会改变文件的引用计数
#( 05/24/22@ 2:31PM )( cxxu@cxxuAli ):~/testLinkec 'abc'>file1
#( 05/24/22@ 2:31PM )( cxxu@cxxuAli ):~/testLinkls -li
total 4
1835411 -rw-rw-r-- 1 cxxu cxxu 4 May 24 14:31 file1
#( 05/24/22@ 2:31PM )( cxxu@cxxuAli ):~/testLinkln file1 file2_hard
#( 05/24/22@ 2:32PM )( cxxu@cxxuAli ):~/testLinkls -li
total 8
1835411 -rw-rw-r-- 2 cxxu cxxu 4 May 24 14:31 file1
1835411 -rw-rw-r-- 2 cxxu cxxu 4 May 24 14:31 file2_hard#符号链接不会改变引用计数
#( 05/24/22@ 2:32PM )( cxxu@cxxuAli ):~/testLinkln -s file1 file3_symbolic
#( 05/24/22@ 2:32PM )( cxxu@cxxuAli ):~/testLinkls -li
total 8
1835411 -rw-rw-r-- 2 cxxu cxxu 4 May 24 14:31 file1
1835411 -rw-rw-r-- 2 cxxu cxxu 4 May 24 14:31 file2_hard
1835412 lrwxrwxrwx 1 root root 5 May 24 14:32 file3_symbolic -> file1
#( 05/24/22@ 2:32PM )( cxxu@cxxuAli ):~/testLinkrm file1
#( 05/24/22@ 2:32PM )( cxxu@cxxuAli ):~/testLinkls -li
total 4
1835411 -rw-rw-r-- 1 cxxu cxxu 4 May 24 14:31 file2_hard
1835412 lrwxrwxrwx 1 root root 5 May 24 14:32 file3_symbolic -> file1

ls -li

#( 05/24/22@ 2:38PM )( cxxu@cxxuAli ):~/testLinkmanly ls -l -ils - list directory contents
============================-i, --inodeprint the index number of each file-l     use a long listing format

ls -l

ls -l file1 
-rw-rw-r--. 1 lilo lilo 0 Feb 26 07:08 file1

From the output above we can deduct a following information:

  • -rw-rw-r- permissions
  • 1 : number of linked hard-links
  • lilo: owner of the file
  • lilo: to which group this file belongs to
  • 0: size
  • Feb 26 07:08 modification/creation date and time
  • file1: file/directory name

powershell/bash命令行中查看目录项目的文件模式👺

在PowerShell中,文件模式(Mode)是指用于描述文件或目录权限和属性的一系列字符。这些模式通常在使用命令如Get-ChildItem, 或进行文件操作时遇到。

下面是对常见文件模式字符的解读:

在 PowerShell 中,Mode 属性是通过 Get-Item 或类似命令获取文件或目录时显示的一个属性,它描述了该文件或目录的访问权限和类型信息。

Mode 字符串由五个字符组成,每个字符都有特定的含义:

  1. 第一个字符表示文件类型:
    • d: 目录
    • l: 链接类型(如果要进一步是SymbolicLink还是Junction,需要进一步查看linkType)
      • 如果是la—类型的,则是硬链接(硬链接的目标是无法通过LinkType来查看的,只能知道它的链接类型是硬链接)
    • -: 普通文件
  2. 接下来的三个字符表示所有者的权限:
    • r: 可读
    • w: 可写
    • x: 可执行
    • -: 对应的权限未设置
  3. 第五个,即最后一个字符通常是-,在 Windows 中不用于表示额外的权限信息。虽然字符通常是 -,有时会是 s ,在 Windows 环境中可能表示该目录被设置为系统文件或目录。到底是什么意思,尚不清楚,没有找到对应的文档介绍

powershell获取DirectoryInfo信息

function Get-PSDirItem
{<# .SYNOPSIS获取子目录的Ps路径对象,而不是子目录中的条目#>param ([Alias('D')]$Directory = '.',[Alias('S')]$SubDirectory)$p = Join-Path -Path $Directory -ChildPath $SubDirectory# 判错逻辑可以不写,如果有错直接抛出错误即可,告诉用户输入的路径是有误的# $exist = Test-Path $p# $p=$exist ? (Resolve-Path $p) : ''$p = Resolve-Path $p$p = $p.Path.Trim('\') #字符串类型Write-Host $p -ForegroundColor Blue$allItems = Get-ChildItem "$p/.."# Write-Host $allItems$res = $allItems | Where-Object { $_.FullName -eq $p }return $res}

非普通文件/目录示例

# [cxxu@COLORFULCXXU][~]
PS> pwdPath
----
C:\Users\cxxuMode                LastWriteTime         Length Name
----                -------------         ------ ----
...
d-r--          2024/4/5     11:08                󰛋  Contacts
dar--         2024/5/29     20:47                󰟀  Desktop
d-r--         2024/5/17     14:25                  Documents
da---         2024/5/27     23:50                󰉍  Downloads
d-r--          2024/4/5     11:08                󰚝  Favorites
d----         2024/5/20     10:20                  go
d-r--          2024/4/5     11:08                  Links
d-r--         2024/4/10     22:04                󰌳  Music
dar--          2024/4/7     16:00                  OneDrive
d-r--         2024/5/26     11:02                󰉏  Pictures
l----         2024/5/28     22:20                  repos 󰁕 C:\repos
d-r--          2024/4/5     11:08                  Saved Games

权限控制效果:

以上述目录列表中的Saved Games为例,它的权限为d-r--;也就是说这是一个只可读的目录

如果您对其执行删除,会出现错误

PS C:\Users\cxxu> Get-PSDirItem -SubDirectory '.\Saved Games\' -Directory .
C:\Users\cxxu\Saved GamesDirectory: C:\Users\cxxuMode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-r--            2024/4/5    11:08                Saved GamesPS>remove-item '.\Saved Games\'Confirm
The item at C:\Users\cxxu\Saved Games\ has children and the Recurse parameter was not specified. If you continue, all children will be removed with the item. Are you sure you
want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
Remove-Item: You do not have sufficient access rights to perform this operation or the item is hidden, system, or read only.
Remove-Item: Directory C:\Users\cxxu\Saved Games\ cannot be removed because it is not empty.
其他
PS>get-PSDirItem -SubDirectory  '.\zh-CN\'
C:\Windows\System32\zh-CNDirectory: C:\Windows\System32Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d---s           2024/5/15    11:53                zh-CN

基础权限标识

  1. d - 目录。表示该条目是一个目录而非文件。
  2. - - 文件。表示该条目是一个普通文件。
  3. l (小写的L) - 符号链接。在支持符号链接的系统上,表示该条目是一个链接到另一个文件或目录的符号链接。

权限位(Linux风格)

在某些上下文中,尤其是当查看与Linux兼容的文件系统(如通过WSL使用)或模拟Linux权限时,你可能会看到类似rwxr-xr--这样的权限字符串。这里的每个部分代表不同用户/组的权限:

  • r (Read) - 读取权限。
  • w (Write) - 写入权限。
  • x (Execute) - 执行权限。
  • - 表示没有相应的权限。

三个字符一组,分别代表:

  • 所有者权限。
  • 所属组权限。
  • 其他人权限。

例如,rwxr-xr--,每三个一组分组后为rwx r-x r--表示所有者有读、写、执行权限,所属组有读和执行权限,其他人只有读权限。

Windows特定权限标识

在Windows环境中,文件和目录的权限更为复杂,通常涉及ACL(Access Control List),包括但不限于以下几种权限类型,但这些不直接以字符形式体现在模式中:

  • Full Control
  • Modify
  • Read & Execute
  • Read
  • Write
  • Special Permissions

查看这些详细权限通常需要使用Get-Acl命令并检查ACL对象的内容。

查看文件模式

要在PowerShell中查看文件或目录的详细模式(包括权限),可以使用如下命令:

# 对于文件或目录的简单属性,包括是否为目录
Get-ChildItem -Path <FilePathOrDirectoryName> | Select-Object Mode# 对于更详细的访问控制列表信息
(Get-Acl -Path <FilePathOrDirectoryName>).Access

请注意,上述Mode字段显示的信息较为基础,若需查看详细的NTFS权限设置,直接查看ACL信息会更合适。

理解文件模式和权限对于管理文件系统安全至关重要,特别是在执行自动化脚本或进行权限审计时。

FAQ

使用限制

  • windows符号链接执行绑定目标(target)地址的时候是硬编码,而且将环境变量转换为就对路径

  • 主要是对于多用户(多系统用户)比较受影响

  • 对于非用户目录,影响就要小一些.

重设符号链接的target

我只知道一个变通的方法(不是原生方法)

  • 将原符号链接重命名
  • 现在可以以原名设定符号链接
  • 利用rename-item 重名名
  • 删除旧的被重命名的链接

中间环境变量对符号链接创建的影响

  • 在创建符号链接的时候,不应当使用够过多的中间变量(不超过一层(嵌套))

    • 过多的中转会导致解析错误
    • 例如:未能完全解析成有效路径(绝对路径)

相关文章:

现代操作系统上创建各类链接的方法汇总

文章目录 现代操作系统上创建各类链接的方法汇总windows: cmd下的mklink创建链接示例 powershell 创建链接创建常规文件和目录创建链接 linux shell 创建硬链接NAMESYNOPSIS详细说明常用选项示例 检查与辨识符号链接&#x1f388;linux下检查ls -l 命令file 命令 windows下检查…...

CSS中的Flex布局

目录 一.什么是Flex布局 二.Flex布局使用 2.1Flex使用语法 2.2基本概念 三.容器的属性 3.1所有属性概述 3.2flex-direction 3.3flex-wrap 3.4flex-flow 3.5justify-content 3.6align-items 3.7align-content 四.项目(子元素)的属性 4.1所有属性概述 4.2order 4…...

基于扩散模型的,开源世界模型DIAMOND

日内瓦大学、微软研究院和爱丁堡大学的研究人员联合开源了&#xff0c;基于扩散模型的世界模型—DIAMOND。 研究人员之所以选择扩散模型作为基础&#xff0c;是因为可以更好地捕捉视觉细节&#xff0c;同时具有建模复杂多模态分布的能力&#xff0c;以便在不同的环境下进行训练…...

【MySQL精通之路】InnoDB存储引擎

欢迎大家关注Innodb存储引擎专栏&#xff1a; http://t.csdnimg.cn/gEsSn 以下是innodb存储引擎相关所有的的知识点。 1.InnoDB简介 2.InnoDB与ACID模型 3.InnoDB多版本 4.InnoDB体系结构 下图显示了构成InnoDB存储引擎体系结构的内存和磁盘结构。 有关每个结构的信息&…...

【创作活动】探索 GPT-4o:下一代语言模型的技术革命

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…...

【热门话题】Debian常用命令指南

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Debian常用命令指南引言1. 文件与目录操作lscdmkdirrmcpmv 2. 包管理aptdpkg 3.…...

人大金仓 KingBase查询死锁,释放死锁

人大金仓(kingbase)查询数据库死锁及释放 kingbase锁表排查以及释放锁 总结下 -- 查询&#xff0c;可自己添加where条件 SELECT * FROM sys_stat_activity WHERE state ! idle AND wait_event_typeLock-- 结束进程 SELECT sys_terminate_backend(pid);...

C++高手进阶:Windows 模块加载的艺术与策略

前文我们讲到了怎么不依赖第三库&#xff0c;搭建自己的测试框架 没有看的读者可以通过这个链接自行阅读&#xff1a; &#x1f449;&#x1f449;&#x1f449; 自力更生&#xff1a;0依赖三方库&#xff0c;手把手教你打造专属C测试框架 作为项目开发来说&#xff0c;我们通常…...

基于STM32单片机老人体温心率血氧跌倒定位短信报警

一.硬件及设计功能 以STM32F103C8T6为中央处理器&#xff0c;GPS模块用采集数据&#xff0c;将数据发送给单片机后&#xff0c;单片机根据定位计算公式得出当前位置的经纬度信息和时间信息。经过LCD显示器处理后得出和时间信息SIM800模块发送短信到设定的手机号上&#xff0c;将…...

【测评】雨云香港三区云服务器,2核2G 5兆,仅需38元/月

写在前面 雨云香港三区云服务器&#xff0c;高性能的 AMD EPYC 处理器 企业级 NVME SSD 高性能云服务器。2核2G 10兆 400G防御&#xff0c;仅需38元/月&#xff0c;年付7折仅 319.2元/年。 官网&#xff1a;https://www.rainyun.com 本次测评服务器配置如下&#xff1a; C…...

如何应对Android面试官 -> 玩转 Fragment

前言 本章主要讲解下 Framgent 的核心原理&#xff1b; 基础用法 线上基础用法&#xff0c;其他的可以自行百度 FragmentManager manager getSupportFragmentManager(); FragmentTransaction transaction manager.beginTransaction(); transaction.add(R.id.contentlayout,…...

sdbusplus:通过文件描述符传递数据

有的时候需要传递大量的数据,如果将数据通过dbus传递,会消耗大量的带宽。可以通过传递一个文件描述符替代传递数据: 以下的service通过文件描述符接收数据: //fd_service.cpp #include <sdbusplus/asio/connection.hpp> #include <sdbusplus/asio/object_server…...

HyperLPR3 车牌识别

Linux 之前安装了python3 apt install python3.8-venv cd /root python3 -m venv HyperLPR3 REM cd HyperLPR3 source HyperLPR3/bin/activate 参考 https://www.jb51.net/article/222885.htm python -m pip install hyperlpr3 里面有fastapi&#xff0c;opencv等 错误&#x…...

面试的内容

1.C的三大特性&#xff1a;封装&#xff0c;继承&#xff0c;多态 2.C11的特性 3.NULL与Nullptr的区别: nullptr是一个特殊的空指针常量&#xff0c;不能被隐式转换为其他类型。 NULL 在一些情况下可能会发生隐式类型转换 4.智能指针 5.stl/Qt stl stl容器包含哪些&…...

剪映网页版

https://www.capcut.cn/web 免费&#xff0c;免安装&#xff0c;跨平台&#xff0c;视频云合成&#xff0c;简直太好用了&#xff01;...

pgsql

创建分区表&#xff1a; PostgreSQL分区表_pg分区表-CSDN博客 创建list分区的函数 create or replace function create_list_fq(tb_name char, row_name char) returns int AS $$ declares char; beginraise notice CREATE TABLE if not exists %_% PARTITION OF % FOR VALU…...

Kotlin学习笔记 泛型

在 Kotlin 中&#xff0c;T 通常用作类型参数的占位符&#xff0c;它在实例化或传递参数时会被替换成具体的类型。 Kotlin 支持泛型&#xff0c;这意味着您可以编写可以与多种数据类型一起工作的代码&#xff0c;而不必为每种数据类型编写单独的代码。 ### 泛型类和函数 在 …...

开发者必看:Linux终端的10大装逼神器,让你的命令行炫酷起来!

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

20 VUE学习:插件

介绍 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。下面是如何安装一个插件的示例&#xff1a; import { createApp } from vueconst app createApp({})app.use(myPlugin, {/* 可选的选项 */ })一个插件可以是一个拥有 install() 方法的对象&#xff0c;也可以直接…...

python之any用法

写法对比 代码一&#xff1a; any(i for i in [0,1]) 代码2&#xff1a; any([i for i in [0,1]]) 优劣 结论&#xff1a;代码一写法更好 解释&#xff1a; 在 Python 中&#xff0c;any() 函数可以接受一个可迭代对象作为参数&#xff0c;并返回 True 如果可迭代对象…...

【前端学习——react坑】useState使用

问题 使用useState 时&#xff0c;例如 const [selectedId, setSelectedId] useState([false,true,false]);这样直接利用&#xff0c;无法引发使用selectedId状态的组件的变化&#xff0c;但是selectedId是修改了的 let tempselectedId;temp[toggledId]selectedId[toggledId…...

【前端每日基础】day28——async/await

async/await 是ES2017&#xff08;ES8&#xff09;引入的用于处理异步操作的语法糖&#xff0c;基于Promise实现。它使得异步代码看起来像同步代码&#xff0c;从而提高了代码的可读性和可维护性。以下是对 async/await 的详细讲解。 基本语法 async 函数 在一个函数前加上 as…...

错误记录:从把项目从Tomcat8.5.37转到Tomcat10.1.7

错误信息&#xff1a;在本地Servlet项目里没有报错&#xff0c;但是浏览器跳转该servlet时报错 型 异常报告 消息 实例化Servlet类[com.wangdao.lx.MyServlet1]异常 描述 服务器遇到一个意外的情况&#xff0c;阻止它完成请求。 例外情况 jakarta.servlet.ServletExceptio…...

AJAX基础知识

定义 Ajax 异步 JavaScript 和 XML &#xff08; async javascript and xml &#xff09;&#xff0c;使用 Ajax 技术网页应用能够快速地将数据更新呈现在用户界面上&#xff0c;而不需要重载&#xff08;刷新&#xff09;整个页面&#xff0c;这使得程序能够更快地回应用户的操…...

xcode依赖包package已经安装,但是提示No such module ‘Alamofire‘解决办法

明明已经通过xcode自带的swift包管理器安装好了依赖包&#xff0c;但是却还是提示&#xff1a;No such module&#xff0c;这个坑爹的xcode&#xff0c;我也只能说服气&#xff0c;但是无奈&#xff0c;没办法攻打苹果总部&#xff0c;只能自己想解决办法了 No such module Ala…...

基于Centos7 安装k8s一主两从

一、资源准备 mac下虚拟机环境搭建 1、使用搜狐的iso源 http://mirrors.sohu.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso 下载 iso镜像。 2、https://www.macwk.com/soft/vmware 下载 mac vm虚拟机 3、搭建一主两从集群所需虚拟机 4、新建虚拟机…...

基于java实现图片中任意封闭区域识别

需求&#xff1a; 在浏览器中给用户呈现一张图片&#xff0c;用户点击图片中的某些标志物&#xff0c;需要系统给出标志物的信息反馈&#xff0c;达到一个交互的作用。 比如下图中&#xff0c;点击某个封闭区域时候&#xff0c;需要告知用户点击的区域名称及图形形状特性等等。…...

闭包是什么?有什么特性?对页面有什么影响?

闭包是指在一个函数内部定义的函数&#xff0c;并且该函数可以访问到外部函数的变量。闭包可以将外部函数的变量保持在内存中&#xff0c;并且不会被释放。 闭包具有以下特性&#xff1a; 1. 函数内部定义的函数可以访问外部函数的变量。 2. 外部函数的变量可以保持在内存中&a…...

MS Excel: 高亮当前行列 - 保持原有格式不被改变

本文使用条件格式VBA的方法实现高亮当前行列&#xff0c;因为纯VBA似乎会清除原有的高亮格式。效果如下&#xff1a;本文图省事就使用同一种颜色了。 首先最重要的&#xff0c;【选中你期望高亮的单元格区域】&#xff0c;比如可以全选当前sheet的全部区域 然后点击【开始】-【…...

langchain学习(十三)

一、将其他chain的输入作为新chain的输出&#xff0c;三种方式 1、采用连接符"|"&#xff0c;推荐 2、采用lamba表达式输入 3、采用pipe方法 from langchain_community.chat_models import ChatOllama from langchain_core.output_parsers import StrOutputParse…...