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

时间:2017-08-08 13:32:11

标签: bash unix

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

path_1
path_2
...

等等。

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

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

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

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

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

2 个答案:

答案 0 :(得分:5)

阅读man test以获取

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

我使用-d作为目录,常规文件的替代值为-f,文件和目录的替代值为-e

答案 1 :(得分:1)

试试这段代码:

import java.text.NumberFormat;

所有有效的文件名都将存储在touch valid.file while read line; do ls $line >> valid.file; done < my_paths_file 中。