-1

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

顺便说一句,这个文件名列表在我的远程 PC 中,你能否建议我如何将它放入 linux 中?

提前非常感谢!

山姆

4

3 回答 3

3

就像是

for line in $(cat files.txt)
do
   find /u02 -type f -name $line >> results.txt
done

在哪里files.txt列出您的文件名,每行一个?

于 2013-01-09T16:49:45.567 回答
0

另一种解决方案:

find /u02 -type f -name $(cat files.txt | xargs | sed 's/\W/ -o -name /g') >> results.txt
于 2013-01-09T17:01:54.077 回答
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
于 2013-01-10T00:16:59.903 回答