Fórum Root.cz
Hlavní témata => Software => Téma založeno: Elep331 19. 11. 2020, 21:51:35
-
Ahoj, lze nějak zřetězit příkazy find a copy? Tedy to co najde find zkopíruj někam?
find / -user petr -exec cp {} /root/petr \; = zkopíruj všechny soubory uživatele petr do adresáře /root/petr
Existuje ovšem i nějaká varianta s pajpou? Něco jako find | cp ?
Díky
-
find <Path> <Conditions> | xargs cp -t <copy file path>
-
find <Path> <Conditions> | xargs cp -t <copy file path>
Na klasických Unixech cp volbu -t nemá. Místo toho se používalo cpio: find src | cpio -pmud dest
-
Ja mam celkem problem s diakritikou a mezerami a zde nastinena reseni mi nechodila, pouzivam (mozna zbytecne, mozna spatne) toto reseni:
#!/bin/bash
find ... | while read fn ; do cp "$fn" ... ; done
-
Ja mam celkem problem s diakritikou a mezerami a zde nastinena reseni mi nechodila, ...
Pro diakritiku, mezery a pod. existuje pro find přepínač -print0, který jednotlivé položky na výpisu odděluje pomocí null znaku. Příkaz xargs pak umí takový vstup zpracovat pomocí přepínače -0
Tj kopírování souborů by vypadalo jako
find /path -type f -user petr -print0 | xargs -0 -I % cp % /root/petr