why use docker here? you’re just adding layers of abstraction in an environment that can’t seem to really support them.
that said, switching to 32bit linux, if the VPS supports it, will save you memory.
why use docker here? you’re just adding layers of abstraction in an environment that can’t seem to really support them.
that said, switching to 32bit linux, if the VPS supports it, will save you memory.
assuming you have a GNU toolchain you can use the
find
command like so:find . -type f -executable -exec sh -c ' case $( file "$1" ) in (*Bourne-Again*) exit 0; esac exit 1' sh {} \; -print0 | xargs -0 -I{} cp {} target/
This first finds all executable files in the current directory (change the “.” arg in find to search other dirs), uses the
file
command to test if it’s a bash file, and if it is, pipes the file name toxargs
which callscp
on each file.note: if “target” is inside the search directory you’ll get output from
cp
that it skipped copying identical files. this is becausefind
will find them a free you copy them so be careful!note 2: this doesn’t preserve the directory structure of the files, so if your scripts are nested and might have duplicate names, you’ll get errors.