我有一个问题:我远程登录到一个linux系统。我有一堆文件名,我需要验证它们是否存在于某个目录 (/u02/csv) 和 /u02/csv 下的子目录下。我很快就觉得用 find 命令一一搜索这些文件已经筋疲力尽了。作为 linux 的新成员。有什么方法可以让 linux 从文本文件中读取文件名并搜索这些文件并将结果(例如,如果存在,只需列出路径,否则,就说不)到另一个文件?
顺便说一句,这个文件名列表在我的远程 PC 中,你能否建议我如何将它放入 linux 中?
提前非常感谢!
山姆
就像是
for line in $(cat files.txt)
do
find /u02 -type f -name $line >> results.txt
done
在哪里files.txt
列出您的文件名,每行一个?
另一种解决方案:
find /u02 -type f -name $(cat files.txt | xargs | sed 's/\W/ -o -name /g') >> results.txt
一个干净、高效的解决方案,适用于名称中包含空格的文件:
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