Если я нахожусь в каталоге с именем /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
где
'{}'
заменяется каждой строкой, переданной из предыдущей команды.