ls -lad
Unix 上bash 命令的 DOS 对应命令是什么?
Windows 上的命令提示符 (cmd.exe) 中的“dir”命令通常被认为相当于 Unix/Linux 上 bash 的“ls”命令。但是,“dir”缺少“ls”的“-d”选项的功能。“-d”选项将目录视为纯文件,并阻止显示其子文件和子目录。
ls -lad ITEM
- 基本上,我需要的是给定 ITEM 的存在和类型。
- 至于类型,我需要知道它是一个目录、一个常规文件还是一个链接。
- 如果它是一个目录,我不希望显示它的子文件或子目录。
- 如果它是一个链接,我需要知道目标。
是否有任何 DOS 命令(甚至是 PowerShell 命令)具有这些功能(1)至(4)?
dir ITEM /a
attrib ITEM
DOS 上的“attrib”命令也会告知给定 ITEM 的存在;如果它是一个目录,“attrib”不会显示其子文件和子目录。但是,“attrib”无法告知它是目录、常规文件还是链接。
答案1
bash 命令的 DOS 对应命令是什么ls -lad
?
没有直接等效的。当然,您可以安装 Cygwin 或 Windows Subsystem for Linux 并ls -lad
直接运行。
您还可以创建一个批处理文件,它可以完成您想要的大部分操作。以下是一些提示。
检查文件是否存在:
if exist filename (
echo filename exists
)
检查文件是否是目录:
if exists filename\nul (
echo directory
) else (
echo file
)
检查文件是否为链接:
dir /a:l filename | find "<SYMLINK>" >nul && echo file symbolic link
检查目录是否为链接:
dir /a:l filename | find "<SYMLINKD>" >nul && echo directory symbolic link
获取文件链接的目标:
for /f "usebackq delims=[] tokens=2" %i in (`dir /a:l filename ^| find "<SYMLINK">`) do @echo %i
获取目录链接的目标:
for /f "usebackq delims=[] tokens=2" %i in (`dir /a:l filename* ^| find "<SYMLINKD>"`) do @echo %i
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 目录- 显示文件和子文件夹的列表。
- 寻找- 在文件中搜索文本字符串并显示找到该字符串的所有行。
- 对于/f- 循环命令:针对一组文件 - 有条件地对每个项目执行命令。
- 如果- 有条件地执行命令。