Код: Выделить всё
cp /usr/local/bin/{mycd*,j*} $(find list-cd -name mycd -type f | rev | cut -f 2- -d'/' | rev)/
Код: Выделить всё
cp: -r not specified; omitting directory './list-cd/progs-oldver/prog/prog
Модераторы: /dev/random, Модераторы разделов
Код: Выделить всё
cp /usr/local/bin/{mycd*,j*} $(find list-cd -name mycd -type f | rev | cut -f 2- -d'/' | rev)/
Код: Выделить всё
cp: -r not specified; omitting directory './list-cd/progs-oldver/prog/prog
Код: Выделить всё
cp /usr/local/bin/mycd1 /usr/local/bin/j2 list-cd/dir1 list-cd/directory with spaces
Вся штука в том, что у меня там нет имён с пробелами, максимум дефис
Даже если нет пробелов, проблема с несколькими найденными директориями остаётся.
Стоп. Вы задаете команде find опцию -type f, чтобы она искала файл,
Это как? find не найдёт никаких директорий, поскольку вы ей прямо сказали искать файл.
Да, я ищу полный путь к устаревшей версии файла, извлекаю путь к нему, и хочу заменить в найденном месте новой копией из известного места, собственно строка поиска должна была выглядеть как-то так
Код: Выделить всё
find list-cd -name mycd -type f -exec bash -c "echo $dirname {}" \;
Пока я писал ответ, Вы провели эксперимент.