1

У меня есть такая структура файла:

experiment/
├── foo.txt
├── source-foo.txt
└── subdir
    └── foo.txt

Я хочу взять файл source-foo.txt и заменить его другими foos. Так же, как и cp source-foo.txt foo.txt и cp source-foo.txt subdir/foo.txt оба одновременно. Я думал, что могу использовать для этой цели find , что-то вроде:

cp source-foo.txt $(find . -iname foo.txt)

Но thet возвращает ошибку:

cp: target „foo.txt“ is not a directory

Как мне сделать эту работу?

1 ответ1

1

С помощью GNU найдите:

cd experiment
find . -name "foo.txt" -exec echo cp -v source-foo.txt {} \;

Если все выглядит хорошо, удалите echo .

Вывод с echo:

cp -v source-foo.txt ./foo.txt
cp -v source-foo.txt ./subdir/foo.txt

Вывод без echo:

`source-foo.txt' -> `./foo.txt'
`source-foo.txt' -> `./subdir/foo.txt'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .