如何在Nushell脚本中检查目录是否存在?
在Nushell中检查目录是否存在的方法
下面是几种实用的实现方式,可根据场景选择:
方法一:结合path exists与类型检查
先用path exists确认路径存在,再通过type命令验证该路径是目录:
let target_dir = "./my-target-dir" if (path exists $target_dir) and ($target_dir | type == "dir") { echo "目标目录存在" } else { echo "目标目录不存在" }
这种方式能区分开存在的文件和目录,避免误判。
方法二:使用test -d命令
Nushell兼容类POSIX的test工具,-d参数可直接检查路径是否为存在的目录:
let target_dir = "./my-target-dir" if test -d $target_dir { echo "目标目录存在" } else { echo "目标目录不存在" }
这是最简洁直接的方式,一步完成判断。
方法三:通过目录切换验证(适合后续需操作目录的场景)
尝试切换到目标目录,通过退出码判断是否成功:
let target_dir = "./my-target-dir" if (cd $target_dir 2>/dev/null; echo $env.LAST_EXIT_CODE) == 0 { echo "目标目录存在" } else { echo "目标目录不存在" }
如果后续需要在该目录下执行操作,这种方式可以顺带完成目录切换,减少重复操作。
内容的提问来源于stack exchange,提问作者stax76
相关产品推荐
相关产品推荐

