BASH Comment convertir du flac en mp3

Voila un petit script avec rien de révolutionnaire qui permet de convertir tout un répertoire de fichier au format flac en mp3

Les dépendances

sudo apt-get install id3v2 flac lame

Le script flac2mp3.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash                                                                                                                                                                         
output_dir="/data/sda1/music/CONVERTING_OUTPUT/$1"
lame_opts="--vbr-new -V 2 -b 128 -B 256"
flac_args="--silent -cd"
 
if [ ! -d "$output_dir" ]; then
    mkdir "$output_dir"
    echo "create dir: $output_dir"
fi
 
for file in *.flac
do
    ARTIST=`metaflac "$file" --show-tag=ARTIST | sed s/.*=//g`
    TITLE=`metaflac "$file" --show-tag=TITLE | sed s/.*=//g`
    ALBUM=`metaflac "$file" --show-tag=ALBUM | sed s/.*=//g`
    GENRE=`metaflac "$file" --show-tag=GENRE | sed s/.*=//g`
    TRACKNUMBER=`metaflac "$file" --show-tag=TRACKNUMBER | sed s/.*=//g`
    DATE=`metaflac "$file" --show-tag=DATE | sed s/.*=//g`
    flac $flac_args "$file" |lame $lame_opts - "$output_dir/${file%.flac}.mp3"
    id3v2 -t "$TITLE" -T "$TRACKNUMBER" -a "$ARTIST" -A "$ALBUM" -g "$GENRE" -y "$DATE" "$output_dir/${file%.flac}.mp3"
done

BASH Comment supprimer des repertoires vide

Une question simple avec une réponse tout aussi simple, comment qu’on fais pour virer un nombre N de répertoire vide sans devoir faire un ‘rm -rf’ a la main pour chaque répertoire.

Le find qui sert a supprimer tous les rpertoires vide d’un repertoire

find . -maxdepth 1 -type d -empty -exec sh -c 'rm -rf "{}" && echo "{}" deleted' \;

Je crée des répertoires bidon pour les tests :p

hio@fantasy:~/test$ mkdir {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,notemptydir} 
hio@fantasy:~/test$ echo maisblu > notemptydir/testfile
hio@fantasy:~/test$ ls -l
total 88
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 0
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 1
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 10
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 11
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 12
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 13
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 14
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 15
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 16
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 17
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 18
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 19
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 2
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 20
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 3
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 4
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 5
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 6
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 7
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 8
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 9
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 notemptydir

On execute le find ^^

 
hio@fantasy:~/test$  find . -maxdepth 1 -type d -empty -exec sh -c 'rm -rf "{}" && echo "{}" deleted' \;
./16 deleted
./10 deleted
./14 deleted
./15 deleted
./4 deleted
./17 deleted
./19 deleted
./2 deleted
./1 deleted
./7 deleted
./13 deleted
./3 deleted
./20 deleted
./12 deleted
./0 deleted
./18 deleted
./6 deleted
./8 deleted
./11 deleted
./5 deleted
./9 deleted
hio@fantasy:~/test$ ls -l
total 4
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 notemptydir

Voila rien de bien sorcier ^^

BASH Comment supprimer les fichiers de backup d’emacs

Voila un script qui sert a supprimer tous les vilains fichiers de backup d’emacs.

eclean.sh

#!/bin/bash
find . -name '#*#' -exec rm -f {} \; -or -name '*~' -exec rm -f {} \;

et une version un poil plus évoluer, ça peu qd même être bien de voir ce qu’on supprime :p

eclean.sh

#!/bin/bash
echo 'Cleaning emacs backups files ...'
find . -type f -name '#*#' -exec sh -c 'rm -f {} && echo {} deleted' \; -or -name '*~' -exec sh -c 'rm -f {} && echo {} deleted' \;

ce qui donne au final

hio@fantasy:~$ eclean 
Cleaning emacs backups files ...
./.config/deluge/gtkui.conf~ deleted
./.config/deluge/blocklist.conf~ deleted
./.config/deluge/core.conf~ deleted
./.emacs~ deleted
./.bashrc~ deleted