Strona 1 z 1

[solved]kopiowanie jednego typu plików do jednego folderu

: 04 paź 2008, 23:01
autor: klawiszowy
To jeszcze raz ja.
Czy istnieje komenda która masowo skopiowałaby wszystkie pliki jednego rodzaju w moim wypadku mp3 z całego dysku do jednego folderu??
pozdrawiam

Odp: kopiowanie jednego typu plików do jednego folderu

: 04 paź 2008, 23:30
autor: el.pescado

Kod: Zaznacz cały

find nazwa_katalogu -name '*.mp3' -exec cp {} docelowy_katalog \;
gdzie nazwa_katalogu to katalog, w którym należy rozpocząć poszukiwania, docelowy_katalog to wiadomo co.

Odp: kopiowanie jednego typu plików do jednego folderu

: 05 paź 2008, 01:21
autor: klawiszowy
dzięki wielkie działa jak Bozia każe... a czy w ramach edukacji żółtodzioba, ale ambitnego wytłumaczysz jeszcze elementy składni?? tak bardziej akademicko, a nie tylko żeby działało?? jak nie masz czasu nie obrażę się...
pozdrawiam
i z góry dzięki żeby nie było nabijania postów...

Odp: [solved]kopiowanie jednego typu plików do jednego folderu

: 05 paź 2008, 01:31
autor: thalcave
Skoro ambitny to

Kod: Zaznacz cały

man find

Odp: [solved]kopiowanie jednego typu plików do jednego folderu

: 05 paź 2008, 12:33
autor: el.pescado
Proszę bardzo:
find to program do wyszukiwania plików
nazwa_katalogu pierwszy argument find określa katalog, w którym należy zacząć poszukiwania
-name '*.mp3' opisuje kryterium poszukiwania plików, w tym wypadku jest to nazwa pasująca do wzorca *.mp3. Wzorzec trzeba ująć w apostrofy, żeby shell go nie rozwinął. Są też inne kryteria, np -newer (jeśli chcemy poszukiwać plików nowszych niż jakiś plik), czy -size (jeśli chcemy poszukiwać plików o odpowiedniej wielkości).
-exec określa, co chcemy zrobić z wynikami wyszukiwania - ta konkretna flaga oznacza, że chcemy wykonać jakiś inny program na wynikach wyszukiwania. Z inncyh opcji można podać po prostu -print, które wypisuje wyniki wyszukiwania na ekranie.
cp {} docelowy_katalog \; - to jest polecenie, argument flagi -exec, czyli polecenie wykonywane dla każdego znalezionego pliku.
cp kopiuje pliki
{} pierwszy argument cp, określa plik, który należy skopiować, symbol {} jest podmieniany przez find na nazwę znalezionego pliku
docelowy katalog drugi argument cp, określa docelowe położenie pliku
\; średnik mówi progrmaowi find, że w tym miejscu się kończy polecenie dla flagi -exec. Ponieważ średnik jest interpretowany przez powłokę bash, podany sam, nie byłby przekazany do find, więc trzeba go zabezpieczyć ukośnikiem (\).

A więcej informacji, tak jak napisał kolega wyżej, znajdziesz w manualu.