Jump to content
BulForum.com

Копиране на файл в цяло дърво от под-директории


exo

Recommended Posts

Здравейте :)

Искам да изкопирам един файл в цяло дърво от под-директории, обратното го правя без проблем :D

find ./ -name 'file' -exec rm '{}' \; -print

Нещо подобно искам да направя обаче с cp ако може. Само че нещо бъркам като му задам destination.

Ще може ли малко помощ в тази насока :)

Link to comment
Share on other sites

find ./ -type d -exec cp your.file.name {} \;

 

Идеята е да пуснеш файнд в основната директория, като му укажеш да търси само директории... после да изпълни ср във всяка една от тях....

Link to comment
Share on other sites

find ./ -type d -exec cp your.file.name {} \;

 

Идеята е да пуснеш файнд в основната директория, като му укажеш да търси само директории... после да изпълни ср във всяка една от тях....

EDIT: Да, да стана ... офф ама съм и аз ... :shy:

Благодаря много :D

Edit2: Нещо съм завеян днеска, сори :D

Link to comment
Share on other sites

мхм...

 

- или извади файла от нея и го копирай от друга директория...

 

например...

 

И един страничен въпрос.. ако това е файл, който често ще променяш, а трябва да го има във всяка директория - не е ли по-разумно да оставиш link към файла във всяка директория? Така при бъдеща промяна няма да ти се налага да го копираш отново по директориите...

Link to comment
Share on other sites

мхм...

 

- или извади файла от нея и го копирай от друга директория...

 

например...

 

И един страничен въпрос.. ако това е файл, който често ще променяш, а трябва да го има във всяка директория - не е ли по-разумно да оставиш link към файла във всяка директория? Така при бъдеща промяна няма да ти се налага да го копираш отново по директориите...

Да, така си е да, обаче да съм откровен досега просто не ми се е налагало да правя такива операций с много файлове и директорий и не знам как ще стане това. :shy: И съответно ако ми се наложи после как евентуално да изтрия тези линкове ? Знам какво е symbolic link и hard link правил съм ги но рекурсивно или така както предлагаш не знам как ще стане ...

Link to comment
Share on other sites

Лесна работа...

 

 for i in $(ls ./); do if [ -d $i ]; then ln -s /path/to/file $i/file; fi; done

 

ако се чудиш - това се пише директно на командния ред... bash ще го изпълни.

 

как да ги изтриеш знаеш... виж си първия пост. ако rm избива грешки, пробвай с unlink вместо.

Link to comment
Share on other sites

Лесна работа...

 

 for i in $(ls ./); do if [ -d $i ]; then ln -s /path/to/file $i/file; fi; done

ако се чудиш - това се пише директно на командния ред... bash ще го изпълни.

 

как да ги изтриеш знаеш... виж си първия пост. ако rm избива грешки, пробвай с unlink вместо.

Даа, find започва да ми харесва :D

10х отново :beerchug

EDIT: Е хайде сега де не съм толкоз зле :D

Link to comment
Share on other sites

всъщност трика с линковете се прави с ls не с find ;)

като цяло силата е в комбинирането на различните tools - заедно могат всичко :) за това трябва не само да се овладеят те, но и взаимодействието между тях - pipes, one-liners... много е интересно. успех в работата!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...