How can I use xargs to copy files that have spaces and quotes in their names?

后端 未结 22 1063
春和景丽
春和景丽 2020-12-02 03:49

I\'m trying to copy a bunch of files below a directory and a number of the files have spaces and single-quotes in their names. When I try to string together find

22条回答
  •  执笔经年
    2020-12-02 04:21

    I played with this a little, started contemplating modifying xargs, and realised that for the kind of use case we're talking about here, a simple reimplementation in Python is a better idea.

    For one thing, having ~80 lines of code for the whole thing means it is easy to figure out what is going on, and if different behaviour is required, you can just hack it into a new script in less time than it takes to get a reply on somewhere like Stack Overflow.

    See https://github.com/johnallsup/jda-misc-scripts/blob/master/yargs and https://github.com/johnallsup/jda-misc-scripts/blob/master/zargs.py.

    With yargs as written (and Python 3 installed) you can type:

    find .|grep "FooBar"|yargs -l 203 cp --after ~/foo/bar
    

    to do the copying 203 files at a time. (Here 203 is just a placeholder, of course, and using a strange number like 203 makes it clear that this number has no other significance.)

    If you really want something faster and without the need for Python, take zargs and yargs as prototypes and rewrite in C++ or C.

提交回复
热议问题