bash - 如何检查文件每一行的所有路径是否是 Bash 中的有效路径?

标签 bash unix

我有一个文件,每一行都有不同的路径

path_1
path_2
...

等等。

我需要检查所有这些路径是否都是有效的。

我现在的做法是新建一个目录(tmp)然后写入

while read line; do cp $line > tmp; done < my_paths_file

然后检查复制到 tmp 目录中的文件数是否等于文件中的行数。由于我的文件中有很多行,这需要很长时间。

是否有更智能、更快速的方法来检查所有路径的有效性?

最佳答案

阅读 man test 以获得解释

while read -r line; do
  test -d "$line" || echo "$line is not valid"
done < my_paths_file

我使用 -d 作为目录,替代方案是 -f 用于常规文件或 -e 用于文件和目录。

关于bash - 如何检查文件每一行的所有路径是否是 Bash 中的有效路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45569790/

相关文章:

linux - 尝试运行 bash 脚本时“找不到命令”

bash - ksh 变量接受的最大字符数是多少?

c - 如何查看静态库文件的编译平台

狂欢 "not": inverting the exit status of a command

bash - bash 中的函数不起作用

java - 典型的预构建 Nagios 插件(例如 check_load)的源代码是什么?

ubuntu - 在Ubuntu上为hadoop设置新用户?

c - fork 没有在母亲身上显示 child 的 pid

bash - 'Brace expansion' 在 Bash 中如何工作?

linux - 如果 [[ $? -ne 0 ]]; .ksh 中的意思