Unix cp argument list too long

后端 未结 6 967
情歌与酒
情歌与酒 2021-02-19 04:37

I am using AIX.

When I try to copy all the file in a folder to another folder with the following command:

cp ./00012524/*.PDF ./dummy01

The

相关标签:
6条回答
  • 2021-02-19 04:40

    The cp command has a limitation of files which you can copy simultaneous.

    One possibility you can copy them using multiple times the cp command bases on your file patterns, like:

    cp ./00012524/A*.PDF ./dummy01
    cp ./00012524/B*.PDF ./dummy01
    cp ./00012524/C*.PDF ./dummy01
    ...
    cp ./00012524/*.PDF ./dummy01
    

    You can also copy trough find command:

    find ./00012524 -name "*.PDF" -exec cp {} ./dummy01/ \;
    
    0 讨论(0)
  • 2021-02-19 04:45

    The -t flag to cp is useful here:

    find ./00012524 -name \*.PDF -print | xargs cp -t ./dummy01

    0 讨论(0)
  • 2021-02-19 04:54

    You should be able use a for loop, e.g.

    for f in $(ls ./00012524/*.pdf)
    do
        cp $f ./dummy01
    done
    

    I have no way of testing this, but it should work in theory.

    0 讨论(0)
  • 2021-02-19 04:59

    Use find command in *nix:

    find ./00012524 -type f -name "*.PDF" -exec cp {} ./dummy01/ \; -print
    
    0 讨论(0)
  • 2021-02-19 05:00

    The best command to copy large number of files from one directory to another.

    find /path/to/source/ -name "*" -exec cp -ruf "{}" /path/to/destination/ \;

    This helped me a lot.

    0 讨论(0)
  • 2021-02-19 05:06
    $ ( cd 00012524; ls | grep '\.PDF$' | xargs -I{} cp {} ../dummy01/ )
    
    0 讨论(0)
提交回复
热议问题