Вот как можно назначить переменные, используя find
и xargs
и открыть все параметры командной строки,
$ find . -name '*.js' | xargs -I {} bash -c 'p="{}"; cp $p newDir/$(basename ${p%.js}.ts)'
Используйте xargs -I {}
, чтобы получить вывод find
каквведите xargs
.Используйте bash -c
для выполнения команды.
Вот демонстрационная версия:
$ mkdir -p a b c d newDir
$ touch a/1.js b/2.js c/three.js d/something.js
$ find . -name '*.js' | xargs -I {} bash -c 'p="{}"; cp $p newDir/$(basename ${p%.js}.ts)'
$ ls newDir/
1.ts 2.ts something.ts three.ts
РЕДАКТИРОВАТЬ (вопрос изменился после нескольких часов после первоначального сообщения).Чтобы сохранить дубликаты в том же каталоге, используйте ту же команду cp
и удалите newDir
и basename
:
$ find . -name '*.js' | xargs -I {} bash -c 'p="{}"; cp $p ${p%.js}.ts'