linux 复制文件pdf到另一个文件夹,【已解决】用find和cp组合实现将find出来的文件批量拷贝到目标文件夹...

【背景】

想要将find出来的一堆文件,用cp去拷贝到目标文件夹。

但是自己试了试find和xarg,结果没搞定。

注:

之前已经折腾了:

和:

但是现在还是无法实现所需要的效果。

【折腾过程】

1.后来参考:

去试试:CLi@PC-CLI-1 /cygdrive/d/to_del/docbook

$ find . -name *.pdf

./arm_vs_mips/release/pdf/arm_vs_mips.pdf

./binutils_intro/release/pdf/binutils_intro.pdf

./build_website/release/pdf/build_website.pdf

./buy_house/release/pdf/buy_house.pdf

./char_encoding/release/pdf/char_encoding.pdf

./compute_basic/release/pdf/compute_basic.pdf

./crifanlib_csharp/release/pdf/crifanlib_csharp.pdf

./crifanlib_python/release/pdf/crifanlib_python.pdf

./crifan_rec_soft/release/pdf/crifan_rec_soft.pdf

./crosstool_ng/release/pdf/crosstool_ng.pdf

./cross_compile/release/pdf/cross_compile.pdf

./csharp_summary/release/pdf/csharp_summary.pdf

./cygwin_intro/release/pdf/cygwin_intro.pdf

./dma_pl08x_analysis/release/pdf/dma_pl08x_analysis.pdf

./docbook_dev_note/release/pdf/docbook_dev_note.pdf

./english_learn/release/pdf/english_learn.pdf

./fieldbus_intro/release/pdf/fieldbus_intro.pdf

./firmware_download/release/pdf/firmware_download.pdf

./hardware_basic/release/pdf/hardware_basic.pdf

./interrupt_related/release/pdf/interrupt_related.pdf

./json_tutorial/release/pdf/json_tutorial.pdf

./language_dev_basic/release/pdf/language_dev_basic.pdf

./language_summary/release/pdf/language_summary.pdf

./linux_nand_driver/release/pdf/linux_nand_driver.pdf

./linux_wireless/release/pdf/linux_wireless.pdf

./mpeg_vbr/release/pdf/mpeg_vbr.pdf

./nand_get_type/release/pdf/nand_get_type.pdf

./programming_language_basic/release/pdf/programming_language_basic.pdf

./python_beginner_tutorial/release/pdf/python_beginner_tutorial.pdf

./python_intermediate_tutorial/release/pdf/python_intermediate_tutorial.pdf

./python_summary/release/pdf/python_summary.pdf

./python_topic_beautifulsoup/release/pdf/python_topic_beautifulsoup.pdf

./python_topic_re/release/pdf/python_topic_re.pdf

./python_topic_str_encoding/release/pdf/python_topic_str_encoding.pdf

./python_topic_web_scrape/release/pdf/python_topic_web_scrape.pdf

./rec_soft_npp/release/pdf/rec_soft_npp.pdf

./regular_expression/release/pdf/regular_expression.pdf

./runtime_upgrade_linux/release/pdf/runtime_upgrade_linux.pdf

./soft_dev_basic/release/pdf/soft_dev_basic.pdf

./symbology_code128/release/pdf/symbology_code128.pdf

./symbology_gs1128/release/pdf/symbology_gs1128.pdf

./symbology_plessey/release/pdf/symbology_plessey.pdf

./symbology_upc/release/pdf/symbology_upc.pdf

./uboot_starts_analysis/release/pdf/uboot_starts_analysis.pdf

./usb_basic/release/pdf/usb_basic.pdf

./usb_disk_driver/release/pdf/usb_disk_driver.pdf

./usb_hid/release/pdf/usb_hid.pdf

./virtualbox_tutorial/release/pdf/virtualbox_tutorial.pdf

./virutal_machine_tutorial/release/pdf/virutal_machine_tutorial.pdf

./vmware_tutorial/release/pdf/vmware_tutorial.pdf

./website_transfer/release/pdf/website_transfer.pdf

./web_scrape_emulate_login/release/pdf/web_scrape_emulate_login.pdf

CLi@PC-CLI-1 /cygdrive/d/to_del/docbook

$ find . -name *.pdf | xargs -i cp {} ../docbook_pdf/

CLi@PC-CLI-1 /cygdrive/d/to_del/docbook

$ ls ../docbook_pdf/

arm_vs_mips.pdf* cross_compile.pdf* hardware_basic.pdf* programming_language_basic.pdf* regular_expression.pdf* usb_disk_driver.pdf*

binutils_intro.pdf* crosstool_ng.pdf* interrupt_related.pdf* python_beginner_tutorial.pdf* runtime_upgrade_linux.pdf* usb_hid.pdf*

build_website.pdf* csharp_summary.pdf* json_tutorial.pdf* python_intermediate_tutorial.pdf* soft_dev_basic.pdf* virtualbox_tutorial.pdf*

buy_house.pdf* cygwin_intro.pdf* language_dev_basic.pdf* python_summary.pdf* symbology_code128.pdf* virutal_machine_tutorial.pdf*

char_encoding.pdf* dma_pl08x_analysis.pdf* language_summary.pdf* python_topic_beautifulsoup.pdf* symbology_gs1128.pdf* vmware_tutorial.pdf*

compute_basic.pdf* docbook_dev_note.pdf* linux_nand_driver.pdf* python_topic_re.pdf* symbology_plessey.pdf* web_scrape_emulate_login.pdf*

crifan_rec_soft.pdf* english_learn.pdf* linux_wireless.pdf* python_topic_str_encoding.pdf* symbology_upc.pdf* website_transfer.pdf*

crifanlib_csharp.pdf* fieldbus_intro.pdf* mpeg_vbr.pdf* python_topic_web_scrape.pdf* uboot_starts_analysis.pdf*

crifanlib_python.pdf* firmware_download.pdf* nand_get_type.pdf* rec_soft_npp.pdf* usb_basic.pdf*

达到效果了。

man xargs中,对应的参数的解释:-I replace-str

Replace occurrences of replace-str in the initial-arguments with names read from standard input. Also, unquoted blanks do not terminate in‐

put items; instead the separator is the newline character. Implies -x and -L 1.

-i [replace-str], --replace[=replace-str]

This option is a synonym for -Ireplace-str if replace-str is specified. If the replace-str argument is missing, the effect is the same as

-I{}. This option is deprecated; use -I instead.

2.但是对于上述的,大括号,即curly bracket的含义,不是很清楚:

【总结】find . -name *.pdf | xargs -i cp {} ../docbook_pdf/

的写法的含义解释:find . -name *.pdf :递归式的找出当前文件夹及其子文件下的所有.pdf文件

xargs -i xxx :其中xxx==cp {} ../docbook_pdf/,表示将输入的内容,用{}替换cp {} ../docbook_pdf/ :对于每一个find出来的文件,拷贝到对应的目标文件夹中。

你可能感兴趣的:(linux,复制文件pdf到另一个文件夹)