#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
cd /home/Sud/Minimal\ Packages/All/
if [ -d $line ]
then
cp $line*.rpm /home/Sud/NewFolder/rpms/
else
echo $line>>/home/Sud/NewFolder/notfound.txt
fi
done < "$1"
我正在尝试运行上述代码
- 逐行读取文本文件
- 检查是否存在该名称的目录
a. 如果是,则将该目录的内容复制到另一个目录
b. 如果没有,则将目录的名称写入文本文件。
每次我运行脚本时,它都会复制所有名称,notfound.txt
即使它们存在于我正在搜索的文件夹中。
我哪里做错了?
答案1
if cp "$line"*.rpm destination/ ; then
echo $line "successful!"
else
echo $line "not found!"
echo "$line">> /home/Sud/notfound.txt
fi
这对我有用。