запрос команды cp

запрос команды cp

Если я нахожусь в каталоге с именем /usr/share/tcl8.3/encoding, какая команда скопирует все файлы, начинающиеся с «cp», которые также содержат четное число (из следующего списка):

cp1250.enc  cp1255.enc  cp737.enc  cp857.enc  cp864.enc  cp932.enc
cp1251.enc  cp1256.enc  cp775.enc  cp860.enc  cp865.enc  cp936.enc
cp1252.enc  cp1257.enc  cp850.enc  cp861.enc  cp866.enc  cp949.enc
cp1253.enc  cp1258.enc  cp852.enc  cp862.enc  cp869.enc  cp950.enc
cp1254.enc  cp437.enc   cp855.enc  cp863.enc  cp874.enc

решение1

Вы пробовали это?

cp cp*[24680].enc destination

решение2

Пытаться:cp cp*[02468]* /path/to/dest/

решение3

Команда

find . -maxdepth 1 | grep -P "/cp\d*[02468]\.enc$" | xargs -I '{}' cp '{}' destination

Как это работает

  • find . -maxdepth 1нерекурсивно ( -maxdepth 1) выводит список всех файлов в текущем каталоге ( .)

  • grep -P "..."сопоставляет каждую строку срегулярное выражение ...

    • /и \.encявляются строками /и .enc.

    • \d*любое количество цифр.

    • [02468]ровно одна четная цифра.

    • $сигнализирует о конце строки.

  • xargs -I '{}' cp '{}' destinationвыполняет команду

    cp '{}' destination
    

    где '{}'заменяется каждой строкой, переданной из предыдущей команды.

Связанный контент