我有一个问题:我远程登录到linux系统。我有一堆文件名,我需要验证它们是否存在于某些目录(/ u02 / csv)和/ u02 / csv下的子目录下。我很快就感到筋疲力尽,使用find命令逐个搜索这些文件。作为Linux的全新bie。有没有什么方法可以让linux从文本文件中读取文件名并搜索这些文件并输出结果(例如,如果它存在,只列出路径,否则,只说拒绝)到另一个文件?
B.T.W。,这个文件名列表在我的远程PC中,您是否也可以建议我如何将它放入linux?
提前多多感谢!
萨姆
答案 0 :(得分:3)
像
这样的东西for line in $(cat files.txt)
do
find /u02 -type f -name $line >> results.txt
done
其中files.txt
列出了您的文件名,每行一个?
答案 1 :(得分:0)
另一种解决方案:
find /u02 -type f -name $(cat files.txt | xargs | sed 's/\W/ -o -name /g') >> results.txt
答案 2 :(得分:0)
一种干净,高效的解决方案,适用于名称中包含空格的文件:
while IFS= read -r file; do
printf '%s ' "$file"
if [[ -e "/u02/csv/$file" ]]; then
printf 'exists.\n'
else
printf 'does not exist.\n'
fi
done < files.txt > results.txt