我的文件在每一行都有不同的路径
path_1
path_2
...
等等。
我需要检查所有这些路径是否都是有效路径。
我现在的做法是创建一个新目录(tmp),然后编写
while read line; do cp $line > tmp; done < my_paths_file
然后检查复制到tmp目录中的文件数是否等于文件中的行数。这需要太长时间,因为我的文件中有很多行。
是否有更智能,更快捷的方法来检查所有路径的有效性?
答案 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
中。