为什么在Powershell中使用“ls -a”命令无法看到隐藏文件...?

yjghlzjz  于 2023-01-13  发布在  Shell
关注(0)|答案(1)|浏览(219)

在用git init命令初始化它之后,我得到了下面的错误。2请帮助解决它。

amrnrhlw

amrnrhlw1#

    • TL;医生**

不要在PowerShell中使用ls -a(在Windows上);请使用以下命令:

# 'gci' is the PowerShell-idiomatic alias of the 'Get-ChildItem' cmdlet,
# which is the analog of the 'ls' utility on Unix-like platforms.
# -Force asks that *hidden* file be shown too.
gci -Force
  • 在Windows上,lsGet-ChildItem cmdlet的内置 * 别名 *,其语法与类Unix平台上提供的标准ls * 实用程序 * 的语法有很大不同。
      • 为不同shell/不同平台的标准实用程序的命令命名的PowerShell别名 * 最好避免***,因为它们的语法不兼容-请参见this answer的底部部分。
  • 使用Get-Command确定给定名称(最终)引用的命令。
  • 使用Get-HelpGet-Command -Syntax查看命令的syntax diagram
  • -Force是一个开关参数,它请求Get-ChildItem也显示 * 隐藏 * 项,类似于Unix上的ls -A(没有 * ls -a类似项,包括列出...,但很少有用)。

至于你所尝试的

  • ls -a转换为Get-ChildItem -a
  • PowerShell的参数名称通常是 * 单词 *(例如-Attributes),而不仅仅是 * 字母 *(例如-a
  • 如果给定的参数名称是完整参数名称的 * 前缀 *,PowerShell * 推断 * 完整参数名称,只要前缀是 * unique *,PowerShell调用 * 弹性语法 * 的功能,仅用于 * 交互 * 方便(在 * 脚本 * 中,参数名称应始终完整拼写,以提高可读性和长期稳定性)。
  • 如果它 * 不是 * 唯一的,就会发生您遇到的错误,因为PowerShell无法预测您要指向哪个参数。
  • 在确定参数名前缀的唯一性时,也会考虑参数 * 别名 *,即使 * 错误消息 * 只提到这些参数的 * 原始 * 名称:
  • 具体来说,错误消息中提到了参数-Directory -File -Hidden -ReadOnly -System,所有这些参数的别名都以 * a * 开头。
  • 可按如下方式列出相关参数及其别名:
(Get-Command Get-ChildItem).ParameterSets.Parameters | Where-Object Aliases -Like a* | Select-Object Name, Aliases -Unique

相关问题