for file in `ls | grep -i 'mumbai|pune|delhi'` ; do cp $file /tmp/ ; done
Команда for file in
ls | grep -i ‘mumbai|pune|delhi’ ; do cp $file /tmp/ ; done
выполняет следующие действия: она использует комбинацию команд ls
, grep
и cp
для поиска файлов, содержащих одно из ключевых слов «mumbai», «pune» или «delhi», а затем копирует найденные файлы в директорию /tmp/
.
Пояснение команды:
— ls
используется для получения списка файлов и директорий в текущем каталоге.
— |
используется для передачи вывода команды ls
входом для команды grep
.
— grep -i 'mumbai|pune|delhi'
применяет утилиту grep
для поиска файлов, содержащих одно из ключевых слов «mumbai», «pune» или «delhi».
— for file in
ls | grep -i ‘mumbai|pune|delhi’ ; do
начинает цикл, в котором присваивается каждое найденное имя файла переменной file
.
— cp $file /tmp/
копирует каждый найденный файл в директорию /tmp/
.
— ;
указывает на конец команды cp
.
— done
завершает цикл.
Альтернативным подходом может быть использование команды find
с опцией -exec
для поиска и копирования файлов. Например: find . -type f -iname '*mumbai*' -o -iname '*pune*' -o -iname '*delhi*' -exec cp {} /tmp/ \;