GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu rekurzivně zkopírovat všechny soubory pdf v adresáři (a jeho podadresářích) do jednoho výstupního adresáře?

  find /bunchopdfs -name "*.pdf" -exec mv {} /papers \;    

Zde je test, který jsem provedl

$ ls -R
.:
a  aaa bbb.pdf  pdfs

./a:
foo.pdf

./pdfs:

Všimněte si souboru "aaa bbb.pdf".

$ find . -name "*pdf" -exec mv {} pdfs \;
$ ls -R
.:
a  pdfs

./a:

./pdfs:
aaa bbb.pdf  foo.pdf

Pokud použijete bash v nejnovější verzi můžete profitovat z globstar možnost:

shopt -s globstar
mv **/*.pdf papers/

find -print0 /directory/with/pdfs -iname "*.pdf" | xargs -0 mv -t /papers

(podobné jiné odpovědi, ale dávám přednost potrubí/xargs/mv ... pro mě intuitivnější)

FYI, výše uvedený jednořádkový skript jsem úspěšně provedl ve více adresářích a více souborech PDF.


Linux
  1. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  2. Shell Script:Třídění souborů do adresářů a podadresářů?

  3. Jak mohu zkopírovat výstup příkazu přímo do schránky?

  1. Jak mohu rekurzivně najít všechny soubory v aktuálních a podsložkách na základě shody zástupných znaků?

  2. Najděte všechny nulabajtové soubory v adresáři a podadresářích

  3. Jak grepovat řetězec v adresáři a všech jeho podadresářích?

  1. Jak zjistit počet souborů v adresáři a podadresářích

  2. Jak mohu rekurzivně kopírovat soubory podle přípony souboru a zachovat adresářovou strukturu?

  3. Jak kopírovat skryté (začínající tečkou) soubory a podadresáře v linuxu?