Как найти список файлов, присутствующих в пути к файлам в Linux?

#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 и позвольте ему выдать сообщение об ошибке, если файл не существует.