#linux #shell
Вопрос:
У меня есть список имен папок. Я хочу проверить, присутствуют ли эти файлы в определенном пути к файлу. Если они есть, мне нужно скопировать их в другое место; если их нет, я хотел бы распечатать это.
Вот сценарий, который я написал, но он проваливается.
filename="$1"
while read -r line; do
name="$line"
if [ "ls -ltra /home/pandy/hotspot/ | grep $name"]; then
echo "$name exists"
cp /home/pandy/hotspot/$name /tmp
else
echo "$name not exists"
fi
done < "$filename"
Комментарии:
1. Это
file=((ls ...))
опечатка? Если нет, то чего вы надеетесь этим добиться?2. Как упоминалось в биографии, я хочу проверить, есть ли список файлов /папок в определенном пути к файлу, если есть, скопируйте их в другое место, если нет, распечатайте на экране
3. Но чего вы надеетесь достичь с помощью синтаксиса
file=(( ... ))
?4. В том, что попытка распечатать список файлов, присутствующих в определенном пути, может быть неправильной. Могу ли я узнать правильный сценарий для выполнения своей задачи ?
5. Но вам даже не нужно проверять! Просто выполните
cp
и позвольте ему выдать сообщение об ошибке, если файл не существует.