commandlinefu.com is the place to record those command-line gems that you return to again and again.
Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.
If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/
You can sign-in using OpenID credentials, or register a traditional username and password.
First-time OpenID users will be automatically assigned a username which can be changed after signing in.
Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.
Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):
Subscribe to the feed for:
This circumvents the inability to put a variable in the gs command.
It takes the current directory, finds all .pdfs, runs them through gs, and moves them into a created drmfree sub-directory.
Useful if you have a bunch of .pdfs on lockdown and don't want to retype this command every single time
Edit: I got the main chunk of code from this command: http://www.commandlinefu.com/commands/view/4345/remove-security-limitations-from-pdf-documents-using-ghostscript
I'm not sure how to submit it as a alternative without creating a duplicate command
Useful if you want to reduce PDF file size using command line by ghostscript.
In this example we extract pages 14-17
This is an expansion on a previous entry, which I've wrapped in a function and placed in my profile. The "$@" is a positional parameter, much like "$*", but the parameters are passed on intact, without interpretation or expansion; so you can simply call the function like this:
This will output a merged PDF of all PDFs in the current directory. Alternatively, you can simply list them like so:
mergepdf 00.pdf 01.pdf 02.pdf ...
N.B. Passing a wildcard will merge all PDFs in the current directory in name order, e.g. 00.pdf 01.pdf aa.pdf ab.pdf
I found this on http://fixnum.org/blog/2007/concat_pdfs_with_ghostscript/ so it's not my creation, but I think it's very useful and a good addition to this codebase.
Using ghostscript instead of imagemagick to convert pdfs into pngs. It keeps pngs with pdfs
doesnt require knowing the password to pdf
syntax for resolution is: (see "man gs" for further informations)
Have to do this once per output file, because if device is 'pdfwrite', even if 'gs' sees '%d' in the OutputFile it still only creates one single output file. Embed it into a simple shell script if you want to split a document out into one file for every page.
Converting your PDF file to JPEG images. You can set resolution by -r option (default: 72dpi).
Remove security from PDF document using this very simple command on Linux and OSX. You need ghostscript for this baby to work.
merge a.pdf b.pdf and c.pdf and create ./out.pdf
It's sometimes useful to strip the embedded fonts from a pdf, for importing into something like Inkscape. Be warned, this will increase the size of a pdf substantially.
I tried this with only gs writing with -sDEVICE=pdfwrite but it doesn't seem to work, so I just pipe postscript output to ps2pdf for the same effect.
Xsane produces PDFs that are too large - particularly multipage PDFs. This command compresses them. If you do not use A4, remove the -sPAPERSIZE flag.
Merge all pdf files in the directory into one pdf file (the out.pdf file)
Use this to turn a page with snippets of equations into vector paths that Adobe Illustrator can handle without choking on font embedding and substitution issues. Good for keeping fonts consistent when labeling charts and diagrams. Also good for embedding formulas into diagrams.