Скопировать файл <имя_файла> в my_<имя_файла>

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
sidd
Сообщения: 667
ОС: Slackware 13.37

Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение sidd »

Можно ли так сделать? Что-то не могу найти.
Patrick is God.
Спасибо сказали:
Lan4
Сообщения: 339
Статус: hikki
ОС: Arch

Re: Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение Lan4 »

cp filename my_filename
Спасибо сказали:
Аватара пользователя
sidd
Сообщения: 667
ОС: Slackware 13.37

Re: Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение sidd »

Так нет :) Я, наверно, плохо объяснил. Надо <имя_файла> в имени исходного файла не самому писать, а чтоб оно само туда вставилось. То есть, нужно, чтоб команда выглядела как-то так:
cp <имя_файла> my_*

Где * — это какая-то штука, которая вставит имя входящего файла.

Или так нельзя вообще?
Patrick is God.
Спасибо сказали:
Аватара пользователя
Brainsburn
Сообщения: 950
Статус: /
ОС: Gentoo

Re: Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение Brainsburn »

Lan4 писал(а):
09.03.2011 21:32
cp filename my_filename

Вы меня опередили :)


for i in `ls`; do cp "$i" "my_$i"; done

как-то так. хотя это уязвимо к пробелам
Спасибо сказали:
Lan4
Сообщения: 339
Статус: hikki
ОС: Arch

Re: Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение Lan4 »

ммм... как вариант:

Код: Выделить всё

cp $1 my_$1

ну оформить как скрипт, конешн)

Brainsburn писал(а):
09.03.2011 21:38
Lan4 писал(а):
09.03.2011 21:32
cp filename my_filename

Вы меня опередили :)


for i in `ls`; do cp "$i" "my_$i"; done

как-то так. хотя это уязвимо к пробелам


Тю. Ну я туплю) Ну да, если все файлы, то так, конешно)
Спасибо сказали:
liaonau
Сообщения: 390
ОС: gentoo

Re: Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение liaonau »

sidd писал(а):
09.03.2011 21:36
Так нет :) Я, наверно, плохо объяснил. Надо <имя_файла> в имени исходного файла не самому писать, а чтоб оно само туда вставилось. То есть, нужно, чтоб команда выглядела как-то так:
cp <имя_файла> my_*

Где * — это какая-то штука, которая вставит имя входящего файла.

Или так нельзя вообще?

Код: Выделить всё

for x in *;do; cp {,my_}"${x}";done

С пробелами в именах вроде работает
P.S. SLEDopit в следующем сообщении прав. Исправил.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение SLEDopit »

Brainsburn писал(а):
09.03.2011 21:38
for i in `ls`;
liaonau писал(а):
09.03.2011 21:49
for x in $(команда);

лучше писать вот так:

Код: Выделить всё

for i in *; do cp "$i" "my_$i"; done
тогда проблем с пробелами и прочей ерундой точно не будет.


liaonau писал(а):
09.03.2011 21:49
С пробелами в именах вроде работает

Код: Выделить всё

 $ touch 1_test "2 test" "3 t t t t test"; for x in $(ls); do echo cp {,my_}"${x}";done
cp 1_test my_1_test
cp 2 my_2
cp test my_test
cp 3 my_3
cp t my_t
cp t my_t
cp t my_t
cp t my_t
cp test my_test

Код: Выделить всё

 $ touch 1_test "2 test" "3 t t t t test"; for x in *; do echo cp {,my_}"${x}";done
cp 1_test my_1_test
cp 2 test my_2 test
cp 3 t t t t test my_3 t t t t test
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
sidd
Сообщения: 667
ОС: Slackware 13.37

Re: Скопировать файл <имя_файла> в my_<имя_файла>

Сообщение sidd »

Спасибо за ответы :)
Patrick is God.
Спасибо сказали: