linux批量查找文件

时间:2013-01-09 16:46:14

标签: linux shell

我有一个问题:我远程登录到linux系统。我有一堆文件名,我需要验证它们是否存在于某些目录(/ u02 / csv)和/ u02 / csv下的子目录下。我很快就感到筋疲力尽,使用find命令逐个搜索这些文件。作为Linux的全新bie。有没有什么方法可以让linux从文本文件中读取文件名并搜索这些文件并输出结果(例如,如果它存在,只列出路径,否则,只说拒绝)到另一个文件?

B.T.W。,这个文件名列表在我的远程PC中,您是否也可以建议我如何将它放入linux?

提前多多感谢!

萨姆

3 个答案:

答案 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