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

ops/2024/10/20 16:04:04/

文章目录

  • 现代操作系统上创建各类链接的方法汇总
    • 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

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

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 重名名
  • 删除旧的被重命名的链接

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

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

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

http://www.ppmy.cn/ops/45302.html

相关文章

Python OCR 文字识别使用模型:读光-文字识别-行识别模型-中英-通用领域

介绍 什么是OCR&#xff1f; OCR是“Optical Character Recognition”的缩写&#xff0c;中文意为“光学字符识别”。它是一种技术&#xff0c;可以识别和转换打印在纸张或图像上的文字和字符为机器可处理的格式&#xff0c;如计算机文本文件。通过使用OCR技术&#xff0c;可…

红队内网攻防渗透:内网渗透之前置知识外网权限提升技术

红队内网攻防渗透 1. 内网权限提升技术1.1 外网权限提升的思路-前置知识1.1.1 外网权限提升知识点:1.1.2 外网权限提升基础内容1.1.2.1 为什么我们要学习权限提升转移技术:1.1.2.2 具体有哪些权限需要我们了解掌握的:1.1.2.3 以上常见权限获取方法简要归类说明:1.1.2.4 以上…

使用C语言实现学生信息管理系统

前言 在我们实现学生信息管理系统的过程中&#xff0c;我们几乎会使用到C语言最常用最重要的知识&#xff0c;对于刚学习完C语言的同学来说是一次很好的巩固机会&#xff0c;其中还牵扯到数据结果中链表的插入和删除内容。 实现学生信息管理系统 文件的创建与使用 对于要实现…

Python爬虫技术深度解析与实战案例

一、引言 随着互联网的快速发展&#xff0c;网络数据已成为人们获取信息、进行研究的重要资源。Python作为一种功能强大且易于学习的编程语言&#xff0c;在爬虫领域有着广泛的应用。本文将详细介绍Python爬虫技术的基本原理、核心组件&#xff0c;并通过一个实战案例展示Pyth…

Laravel 图片添加水印

和这个配合使用 Laravel ThinkPhP 海报生成_laravel 制作海报-CSDN博客 代码 //水印 $x_length $imageInfo[0]; $y_length $imageInfo[1];$color imagecolorallocatealpha($posterImage, 255, 255, 255, 70); // 增加透明度参数alpha$font_size 40; //字体大小 $angle …

C语言函数复习全解析:参数、无参、嵌套与递归

C语言复习 函数篇 文中包括调用有参函数和无参函数、函数的嵌套和递归。首先,通过一道例题介绍了有参函数的概念和用法,即定义一个函数,接受特定参数并返回结果。接着,讲解了无参函数,即执行函数时不需要返回数值,只执行特定操作。然后,介绍了函数的嵌套,即在一个函数内部调用…

2024最新彩虹聚合DNS管理系统源码v1.3 全开源

2024最新彩虹聚合DNS管理系统源码v1.3 全开源 聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析&#xff0c;目前已支持的域名平台有&#xff1a;阿里云、腾讯云、华为云、西部数码、DNSLA、CloudFlare。 本系统支持多用户&#xff0c;每个用户可分配不同的域名解…

【学习笔记】第二章 Scala入门——Scala安装和运行

一、Scala的安装方法 要使用Scala&#xff0c;首先需要保证已经安装好了Java 8。对于Linux操作系统&#xff0c;Java 8已经默认安装了&#xff0c;而使用Windows操作系统的用户&#xff0c;则需要在Java官网下载安装包进行安装。请在CMD、PowerShell或终端中运行“java -versio…