This tidies your [PATH](). Usage: ```bash PATH="$(tidypath -c "$HOME/bin" "/path/to/in" -p)" ``` where `-c` means it checks for the presence of each directory, and `-p` inserts the current [PATH](). I usually use [Python](/aw/lang/python) these days, but [Perl](/aw/lang/perl) starts more quickly, and that is important when this is called from your `.bashrc`. ``` #!/usr/bin/perl # give PATH variable(s) on the command line # duplicates are removed, and with the -c option, non-existing directories are removed %a = (); @a = (); $check = 0; for(@ARGV) { if($_ eq "-c") { $check = 1; next; } if( $_ eq "-p" ) { $_ = $ENV{"PATH"}; } @b = split /:/; for $b(@b) { unless($a{$b}) { $a{$b} = $b; next unless(! $b eq ""); next if( $check and ! -d $b ); # skip nonexisting paths push @a, $b; } } } $p = join ":", @a; print $p."\n"; ```