Hide

What's this?

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/

Get involved!

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.

Hide

Stay in the loop…

Follow the Tweets.

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.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

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:

Hide

News

2011-03-12 - Confoo 2011 presentation
Slides are available from the commandlinefu presentation at Confoo 2011: http://presentations.codeinthehole.com/confoo2011/
2011-01-04 - Moderation now required for new commands
To try and put and end to the spamming, new commands require moderation before they will appear on the site.
2010-12-27 - Apologies for not banning the trolls sooner
Have been away from the interwebs over Christmas. Will be more vigilant henceforth.
2010-09-24 - OAuth and pagination problems fixed
Apologies for the delay in getting Twitter's OAuth supported. Annoying pagination gremlin also fixed.
Hide

Tags

Hide

Functions

A trash function for bash

Terminal - A trash function for bash
trash-put junkfolder
2014-03-09 00:24:09
User: Sepero
1
A trash function for bash

apt-get install trash-cli

Commandline program that allows you put folders or files in the standard KDE/Unity desktop trash.

Alternatives

There is 1 alternative - vote for the best!

Terminal - Alternatives
trash <file>
2009-11-25 16:45:15
Tags: trash
14

Every rm'ed a file you needed? Of course you haven't. But I have. I got sick of it so I created a bash function. Here it is. It'll put trashed files into a $HOME/.Trash/"date" folder according to the date. I have rm aliased to it as well in my bashrc so that I still use the rm command. It'll choke if you attempt to trash a directory if that directory name is already in the Trash. This rarely happens in my case but it's easy enough to add another test and to mv the old dir if necessary.

function trash(){

if [ -z "$*" ] ; then

echo "Usage: trash filename"

else

DATE=$( date +%F )

[ -d "${HOME}/.Trash/${DATE}" ] || mkdir -p ${HOME}/.Trash/${DATE}

for FILE in $@ ; do

mv "${FILE}" "${HOME}/.Trash/${DATE}"

echo "${FILE} trashed!"

done

fi

}

Know a better way?

If you can do better, submit your command here.

What others think

This is my version of the trash command. I accidently rm'ed files one or twice in my life which cause a lot of extra work.

Movin the files to a trash folder in your home directory is nice, but the folder keeps growing if you don't delete the files manually.

I mv the files to /tmp/trash because the /tmp folder is cleaned after the next reboot (my machine runs for weeks).

# Don't remove files immediately. Move them to /tmp/trash instead. They will

# be kept until the next reboot.

# hhanff

function del () {

if [[ -z "$*" ]] ; then

echo "Usage: del FILE_NAME "

else

# Test if /tmp/trash exists and proceed with deleting files if it

# exists. If it does not exist, e.g. after a restart, create the

# directory and proceed.

if [ -d /tmp/trash ]

then

echo "/tmp/trash exists. Proceeding." > /dev/null

else

mkdir /tmp/trash

fi

# TBD: Do not move every file separately, but

# mv all files at once... don't know how...

while [ $# -ne 0 ]

do

# Files will be prescedet with a timestamp.

# basetime=$(date "+%FT%T")

# basetime=$(date +%s%N)

basetime=$(date "+%Y%m%dT%H%M%S")

#echo $1

# Make whitespaces underscores

TRIMMED_1=`echo "$1" | sed 's/ /_/g'`

TRIMMED_2=$(basename $TRIMMED_1)

# Move files to /tmp/trash

mv "$1" /tmp/trash/"$basetime"-"$TRIMMED_2";

shift

done

fi

}

del <file>
Comment by hhanff 32 weeks and 4 days ago

Your point of view

You must be signed in to comment.

Related sites and podcasts