Thread View: pl.comp.os.linux.programowanie
14 messages
14 total messages
Started by Adam Majewski
Sun, 09 Sep 2012 14:49
Bash : kopiowanie wybranych plików z podkatalogami
Author: Adam Majewski
Date: Sun, 09 Sep 2012 14:49
Date: Sun, 09 Sep 2012 14:49
25 lines
1276 bytes
1276 bytes
Cześć,
Chcę skopiowąć :
* tylko pliki z rozszerzeniem c
* z katalogu ~/c
* do katalogu ~/temp
* tak aby zachować podkatalogi
Próbowałem :
find ~/c -maxdepth 7 -name "*.c" -exec cp {} -R ~/temp \;
ale w katalogu docelowym nie ma podkatalogów
Inna opcja :
cp -R ~/c ~/temp
Kopiuje z podkatalogami ale wszystkie pliki.
Pomoc mile widziana
Adam
bash --version
GNU bash, version 4.2.8(1)-release (x86_64-pc-linux-gnu)
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Bartosz Feński aka fEnIo
Date: Sun, 09 Sep 2012 15:09
Date: Sun, 09 Sep 2012 15:09
24 lines
1619 bytes
1619 bytes
W artykule Adam Majewski napisał(a):
> Chcę skopiowąć :
> * tylko pliki z rozszerzeniem c
> * z katalogu ~/c
> * do katalogu ~/temp
> * tak aby zachować podkatalogi
>
> Próbowałem :
> find ~/c -maxdepth 7 -name "*.c" -exec cp {} -R ~/temp \;
-a
Tak spróbuj.
[...]
pozdr,
fEnIo
--
,''`. Bartosz Fenski | mailto:fenio@debian.org | pgp:0x13fefc40 | irc:fEnIo
: :' : 32-050 Skawina - Glowackiego 3/15 - malopolskie v. - Poland
`. `' phone:+48602383548 | proud Debian maintainer and user
`- http://fenski.pl | xmpp:fenio@jabber.org | rlu:172001
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Kamil Jońca
Date: Sun, 09 Sep 2012 15:50
Date: Sun, 09 Sep 2012 15:50
23 lines
1385 bytes
1385 bytes
Adam Majewski <adammaj1@o2.pl> writes: > Cześć, > > Chcę skopiowąć : > * tylko pliki z rozszerzeniem c > * z katalogu ~/c > * do katalogu ~/temp > * tak aby zachować podkatalogi hm. Może tak? (cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x KJ -- http://modnebzdury.wordpress.com/2009/10/01/niewiarygodny-list-prof-majewskiej-wprowadzenie/ This fortune is false.
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: orcus
Date: Sun, 09 Sep 2012 16:37
Date: Sun, 09 Sep 2012 16:37
25 lines
1428 bytes
1428 bytes
On 2012-09-09, Adam Majewski <adammaj1@o2.pl> wrote:
> Cześć,
>
> Chcę skopiowąć :
> * tylko pliki z rozszerzeniem c
> * z katalogu ~/c
> * do katalogu ~/temp
> * tak aby zachować podkatalogi
>
> Próbowałem :
> find ~/c -maxdepth 7 -name "*.c" -exec cp {} -R ~/temp \;
>
> ale w katalogu docelowym nie ma podkatalogów
-exec bash -c 'D=~/temp/$( dirname "{}" ); mkdir -p "$D"; cp -a "{}"
"$D"' \;
Pisane z głowy, więc można się spodziewać że skopiowane nie zadziała.
Przy okazji chętnie dowiem się jak prościej wykonuje się kilka poleceń
używając jednego execa.
--
Pozdrawiam
orcus
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Adam Majewski
Date: Sun, 09 Sep 2012 16:41
Date: Sun, 09 Sep 2012 16:41
29 lines
1692 bytes
1692 bytes
On 09.09.2012 17:50, Kamil Jońca wrote: > > Adam Majewski <adammaj1@o2.pl> writes: > >> Cześć, >> >> Chcę skopiowąć : >> * tylko pliki z rozszerzeniem c >> * z katalogu ~/c >> * do katalogu ~/temp >> * tak aby zachować podkatalogi > > > hm. Może tak? > > > (cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x > > KJ > > Działa. Super. Dzięki. Czy użycie tar oznacza że zrobienie tego z cp jest nie możliwe/trudne ? Adam BTW wcześniej jakoś mi się udawało z Bashem : http://commons.wikimedia.org/wiki/File:Quadratic_Julia_set_with_Internal_tile_for_internal_ray_0.ogv
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Kamil Jońca
Date: Sun, 09 Sep 2012 18:17
Date: Sun, 09 Sep 2012 18:17
38 lines
1862 bytes
1862 bytes
Adam Majewski <adammaj1@o2.pl> writes: > On 09.09.2012 17:50, Kamil Jońca wrote: >> >> Adam Majewski <adammaj1@o2.pl> writes: >> >>> Cześć, >>> >>> Chcę skopiowąć : >>> * tylko pliki z rozszerzeniem c >>> * z katalogu ~/c >>> * do katalogu ~/temp >>> * tak aby zachować podkatalogi >> >> >> hm. Może tak? >> >> >> (cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x >> >> KJ >> >> > Działa. Super. Dzięki. > Czy użycie tar oznacza że zrobienie tego z cp jest nie możliwe/trudne ? > Powiem tak: ja nie umiem inaczej niż wołać cp w pętli dla każdego pliku (w wersji zoptymalizowanej: katalogu) źródłowego (czego mutacją jest rozwiązanie orcusa). I nie widzę opcji w cp które można by tu użyć. A czy lepszy jest tar czy wiele cp, to zależy. KJ -- http://sporothrix.wordpress.com/2011/01/16/usa-sie-krztusza-kto-nastepny/ Brain fried -- Core dumped
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: m
Date: Sun, 09 Sep 2012 19:45
Date: Sun, 09 Sep 2012 19:45
27 lines
1824 bytes
1824 bytes
W dniu 09.09.2012 18:37, orcus@pwr.wroc.pl pisze:
> On 2012-09-09, Adam Majewski <adammaj1@o2.pl> wrote:
>> Cześć,
>>
>> Chcę skopiowąć :
>> * tylko pliki z rozszerzeniem c
>> * z katalogu ~/c
>> * do katalogu ~/temp
>> * tak aby zachować podkatalogi
>>
>> Próbowałem :
>> find ~/c -maxdepth 7 -name "*.c" -exec cp {} -R ~/temp \;
>>
>> ale w katalogu docelowym nie ma podkatalogów
>
> -exec bash -c 'D=~/temp/$( dirname "{}" ); mkdir -p "$D"; cp -a "{}"
> "$D"' \;
>
> Pisane z głowy, więc można się spodziewać że skopiowane nie zadziała.
>
> Przy okazji chętnie dowiem się jak prościej wykonuje się kilka poleceń
> używając jednego execa.
Nie do końca to o co pytałes, ale czy install -D nie zrobi tego co
miałby zrobić ten exec?
p. m.
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: orcus
Date: Sun, 09 Sep 2012 19:53
Date: Sun, 09 Sep 2012 19:53
20 lines
1785 bytes
1785 bytes
On 2012-09-09, Kamil Jońca <kjonca@poczta.onet.pl> wrote: > Adam Majewski <adammaj1@o2.pl> writes: >> Działa. Super. Dzięki. >> Czy użycie tar oznacza że zrobienie tego z cp jest nie możliwe/trudne ? >> > Powiem tak: ja nie umiem inaczej niż wołać cp w pętli dla każdego pliku > (w wersji zoptymalizowanej: katalogu) źródłowego (czego mutacją jest > rozwiązanie orcusa). I nie widzę opcji w > cp które można by tu użyć. > > A czy lepszy jest tar czy wiele cp, to zależy. W manualu do rsync(w przykladach FILTER RULES) jest chyba dokładnie to co chce osiągnąć twórca wątku. Wtedy mamy jedno polecenie i jeden proces:) Jest nawet uwaga o tym jak pozbyć się pustych katalogów które miały by zostać przekopiowane. -- Pozdrawiam orcus
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: orcus
Date: Sun, 09 Sep 2012 19:54
Date: Sun, 09 Sep 2012 19:54
17 lines
1423 bytes
1423 bytes
On 2012-09-09, m <mvoicem@gmail.com> wrote:
> W dniu 09.09.2012 18:37, orcus@pwr.wroc.pl pisze:
>> -exec bash -c 'D=~/temp/$( dirname "{}" ); mkdir -p "$D"; cp -a "{}"
>> "$D"' \;
>>
>> Przy okazji chętnie dowiem się jak prościej wykonuje się kilka poleceń
>> używając jednego execa.
>
> Nie do końca to o co pytałes, ale czy install -D nie zrobi tego co
> miałby zrobić ten exec?
Jasne - dzięki. Znalazłem jeszcze prostsze rozwiązanie - bez finda -
rsync ma to nawet opisane w manualu.
--
Pozdrawiam
orcus
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Kamil Jońca
Date: Sun, 09 Sep 2012 19:58
Date: Sun, 09 Sep 2012 19:58
13 lines
1457 bytes
1457 bytes
orcus@pwr.wroc.pl writes: [...] > W manualu do rsync(w przykladach FILTER RULES) jest chyba dokładnie to No fakt. O rsync zapomniałem :) KJ -- http://blogdebart.pl/2010/03/17/dalsze-przygody-swinki-w-new-jersey/ Truth has no special time of its own. Its hour is now -- always. -- Albert Schweitzer
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Sep 2012 20:27
Date: Sun, 09 Sep 2012 20:27
22 lines
2015 bytes
2015 bytes
On 2012-09-09, Kamil Jońca <kjonca@poczta.onet.pl> wrote: >>>> Chcę skopiowąć : >>>> * tylko pliki z rozszerzeniem c >>>> * z katalogu ~/c >>>> * do katalogu ~/temp >>>> * tak aby zachować podkatalogi >>> (cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x >> Działa. Super. Dzięki. >> Czy użycie tar oznacza że zrobienie tego z cp jest nie możliwe/trudne ? >> > Powiem tak: ja nie umiem inaczej niż wołać cp w pętli dla każdego pliku > (w wersji zoptymalizowanej: katalogu) źródłowego (czego mutacją jest > rozwiązanie orcusa). I nie widzę opcji w > cp które można by tu użyć. --parents? -- Secunia non olet. Stanislaw Klekot
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Kamil Jońca
Date: Sun, 09 Sep 2012 20:35
Date: Sun, 09 Sep 2012 20:35
28 lines
1932 bytes
1932 bytes
"Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> writes: > On 2012-09-09, Kamil Jońca <kjonca@poczta.onet.pl> wrote: >>>>> Chcę skopiowąć : >>>>> * tylko pliki z rozszerzeniem c >>>>> * z katalogu ~/c >>>>> * do katalogu ~/temp >>>>> * tak aby zachować podkatalogi > >>>> (cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x > >>> Działa. Super. Dzięki. >>> Czy użycie tar oznacza że zrobienie tego z cp jest nie możliwe/trudne ? >>> >> Powiem tak: ja nie umiem inaczej niż wołać cp w pętli dla każdego pliku >> (w wersji zoptymalizowanej: katalogu) źródłowego (czego mutacją jest >> rozwiązanie orcusa). I nie widzę opcji w >> cp które można by tu użyć. > > --parents? A kopiowanie tylko *.c? KJ -- http://blogdebart.pl/2012/06/24/hiena/ I have a very small mind and must live with it. -- E. Dijkstra
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Kamil Jońca
Date: Sun, 09 Sep 2012 20:37
Date: Sun, 09 Sep 2012 20:37
33 lines
2194 bytes
2194 bytes
"Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> writes: > On 2012-09-09, Kamil Jońca <kjonca@poczta.onet.pl> wrote: >>>>> Chcę skopiowąć : >>>>> * tylko pliki z rozszerzeniem c >>>>> * z katalogu ~/c >>>>> * do katalogu ~/temp >>>>> * tak aby zachować podkatalogi > >>>> (cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x > >>> Działa. Super. Dzięki. >>> Czy użycie tar oznacza że zrobienie tego z cp jest nie możliwe/trudne ? >>> >> Powiem tak: ja nie umiem inaczej niż wołać cp w pętli dla każdego pliku >> (w wersji zoptymalizowanej: katalogu) źródłowego (czego mutacją jest >> rozwiązanie orcusa). I nie widzę opcji w >> cp które można by tu użyć. > > --parents? A kopiowanie tylko *.c? Po namyśle przyznaję Ci rację. To powinno zadziałać (kurde, przysiągłbym, że parents nie było wcześniej ;) ) KJ -- http://blogdebart.pl/2012/06/24/hiena/ I have a very small mind and must live with it. -- E. Dijkstra
Re: Bash : kopiowanie wybranych plików z podkatalogami
Author: Stachu 'Dozzie' K.
Date: Sun, 09 Sep 2012 21:50
Date: Sun, 09 Sep 2012 21:50
41 lines
2836 bytes
2836 bytes
On 2012-09-09, Kamil Jońca <kjonca@poczta.onet.pl> wrote: > "Stachu 'Dozzie' K." <dozzie@go.eat.some.screws.spammer.invalid> writes: > >> On 2012-09-09, Kamil Jońca <kjonca@poczta.onet.pl> wrote: >>>>>> Chcę skopiowąć : >>>>>> * tylko pliki z rozszerzeniem c >>>>>> * z katalogu ~/c >>>>>> * do katalogu ~/temp >>>>>> * tak aby zachować podkatalogi >> >>>>> (cd ~/c ; find -maxdepth 7 -name "*.c" |tar -T - -c) |tar -C ~/temp -x >> >>>> Działa. Super. Dzięki. >>>> Czy użycie tar oznacza że zrobienie tego z cp jest nie możliwe/trudne ? >>>> >>> Powiem tak: ja nie umiem inaczej niż wołać cp w pętli dla każdego pliku >>> (w wersji zoptymalizowanej: katalogu) źródłowego (czego mutacją jest >>> rozwiązanie orcusa). I nie widzę opcji w >>> cp które można by tu użyć. >> >> --parents? > > A kopiowanie tylko *.c? find src -type f -name \*.c -print0 | \ xargs -0r cp --parents --target /dest Rzecz jasna w bardzo rozgadany, grzeczny i odporny sposób na narzędziach GNU. W uproszczeniu: cp --parents `find src -name \*.c` /dest > Po namyśle przyznaję Ci rację. To powinno zadziałać (kurde, > przysiągłbym, że parents nie było wcześniej ;) ) Całkiem możliwe. Ja sam od czasu do czasu jestem zaskakiwany nowymi opcjami w coreutils, procps, grepie, sedzie, tarze i w podobnych, które wydawałoby się że już z dawna nie powinny się zmieniać. -- Secunia non olet. Stanislaw Klekot
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads