Portál AbcLinuxu, 12. května 2025 22:27

Dotaz: Jak vykopírovat z adresářů jen určité soubory

28.12.2010 08:50 Myšpulín | skóre: 8
Jak vykopírovat z adresářů jen určité soubory
Přečteno: 450×
Odpovědět | Admin
Potřeboval bych z adresářové struktury vykopírovat do jednoho adresáře jen určité soubory - např. *.doc. Nevíte jak na to? Předesílám, že: googlit jsem googlil a že find . -type f -name '*.doc' | xargs cp /storage/ ani find . -type f -name '*.doc' -exec cp {} /storage/{} \; nefungují

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Myšpulín (tazatel))
28.12.2010 08:57 Matlák
Rozbalit Rozbalit vše Re: Jak vykopírovat z adresářů jen určité soubory
Odpovědět | | Sbalit | Link | Blokovat | Admin
for file in `find -type f -name "*.doc"` ; do cp "${file}" /storage/ ; done
28.12.2010 09:22 kei.101
Rozbalit Rozbalit vše Re: Jak vykopírovat z adresářů jen určité soubory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Potřebujete ty soubory vykopírovat do jednoho adresáře nebo v tom adresáři vytvorit stejnou podadresářovou strukturu s těmito soubory?

V prvním případě: find . -type f -name '*.doc' -exec cp {} /storage/ ';'

Ve druhém něco jako:
find . -type f -name '*.doc' | (
while read fname; do
  dir="/storage/`dirname $fname`" #tohle možná nemusí fungovat s mezerami v názvu
  mkdir -p "$dir"
  cp "$fname" "$dir"/
done)
nebo elegantněji:
touch empty
tar -cf muj.tar empty
find . -type f -name '*.doc' -exec tar -rf muj.tar {} ';'
tar -xf muj.tar -C /storage/
rm -f empty muj.tar /storage/empty
28.12.2010 10:24 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Jak vykopírovat z adresářů jen určité soubory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ak nie je potrebna adresarova struktura, tak staci find, xargs a cp, ako bolo zmienene.

Ak je potrebna aj adresarova struktura, myslim, ze by to mohol elegantne zvladnut rsync.
Řešení 1× (Myšpulín (tazatel))
30.12.2010 14:08 Myšpulín | skóre: 8
Rozbalit Rozbalit vše Re: Jak vykopírovat z adresářů jen určité soubory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Díky za pomoc. Ještě jsem našel toto: find . -name *.doc -type f -print0 | xargs -0 -i cp {} /storage/
30.12.2010 17:02 deadmail
Rozbalit Rozbalit vše Re: Jak vykopírovat z adresářů jen určité soubory
este tam dat uvodzovky ... "*.doc"
30.12.2010 18:51 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Jak vykopírovat z adresářů jen určité soubory
Radsej apostrofy, ked uz. Uvodzovky pripadnej expanzii nezabrania.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.