#1 Le 08/08/2010, à 18:40
- gaspalet
[RÉSOLU] Supprimer le fichier courant ?
Salut à tous !
Je tente mon premier script, qui a pour objectif de déplacer tous les fichiers matroska dans ~/Vidéos/Films, puis de supprimer le répertoire où je me trouve actuellement et tout ce qu'il y a dedans.
J'ai déjà ça :
#!/bin/bash
mv *.mkv /home/gasp/Vidéos/Films/
Mais je bloque sur la suppression du répertoire courant. En effet,
rm -vIR *
ne fait que supprimer ce qu'il y a dedans, et pas le répertoire en lui-même. Quelques idées ?
Autre petite question : si je fait mon rm -R *, y a-t-il un risque qu'il supprimer .. et remonte ainsi à la racine ?
Merci de votre aide
Dernière modification par gaspalet (Le 08/08/2010, à 21:42)
Hors ligne
#2 Le 08/08/2010, à 18:59
- wido
Re : [RÉSOLU] Supprimer le fichier courant ?
Bonjour,
tu lances des commandes super dangereux toi
ce serait beaucoup mieux de faire ceci:
#!/bin/bash
cd ~/Vidéos/Films
mv ~/Vidéos/Films*.mkv ~/Vidéos/Films/
rm -R ~/Vidéos/Films
exit
Hors ligne
#3 Le 08/08/2010, à 19:09
- gaspalet
Re : [RÉSOLU] Supprimer le fichier courant ?
Thanks pour ta réponse ! Mais en fait, je crois que ton script arrive pas vraiment au même résultat. Ce que je voulais, c'est aller dans un dossier, come ~/Téléchargements, et c'est à partir de là qu'il me mv les .msk et supprime les dossier d'où les .msk ont été pris.
Exemple : un fichier vidéo lala.msk se trouve dans ~/Téléchargments/Moovie. Ce qu'il faudrait, c'est que le fichier lala.msk soit bougé dans ~/Vidéos/Films, puis que le dossier Moovie soit supprimé. Sacré challenge
Le *.msk ne récupère qu'un fichier car il y a toujours un seul fichier vidéo à la fois dans /Téléchargments. Après, le problème est toujours de supprimer le dossier d'où il vient...
Dernière modification par gaspalet (Le 08/08/2010, à 19:18)
Hors ligne
#4 Le 08/08/2010, à 19:56
- wido
Re : [RÉSOLU] Supprimer le fichier courant ?
Ahh c'est facile
#!/bin/bash
# Dépendances: zenity
# selectionne un fichier et un dossier destination
# deplace le fichier dans le dossier destination
# suppression du dossier source.
fichier=$(zenity --file-selection \
--title="Veuillez selectionner un fichier" \
--text="Choisissez un fichier quelconque");
echo ${fichier}
dossier=$(zenity --file-selection \
--title="Veuillez selectionner un dossier" \
--text="Choisissez un dossier quelconque" \
--directory);
echo ${dossier}
dossier_du_fichier=`dirname $fichier`
# On se met dans le dossier destination
cd "$dossier"
mv "$fichier" "$dossier"
zenity --question \
--text="Voulez-vous vraiment effacer le dossier "$dossier_du_fichier" ?"
question=$(echo $?)
if [[ "${question}" == "1" ]]
then
echo "fin du script"
exit 0
elif [[ "${question}" == "0" ]]
then
rm -Ri "$dossier_du_fichier"
echo "effacement du "$dossier_du_fichier""
fi
Hors ligne
#5 Le 08/08/2010, à 20:40
- gaspalet
Re : [RÉSOLU] Supprimer le fichier courant ?
Super C'est parfait, je l'ai un peu modifié pour qu'il envoie cash vers ~/Vidéos/Films. Thanks a lot !
#!/bin/bash
# Dépendances: zenity
# sélectionne un fichier et le déplace dans le dossier ~/Vidéos/Films
# suppression du dossier source.
fichier=$(zenity --file-selection \
--title="Veuillez sélectionner un fichier" \
--text="Choisissez un fichier quelconque");
echo ${fichier}
dossier=/home/gasp/Vidéos/Films;
dossier_du_fichier=`dirname $fichier`
# On se met dans le dossier destination
cd "$dossier"
mv "$fichier" "$dossier"
zenity --question \
--text="Voulez-vous vraiment effacer le dossier "$dossier_du_fichier" ?"
question=$(echo $?)
if [[ "${question}" == "1" ]]
then
echo "Tu n'es pas joueur, dommage..."
exit 0
elif [[ "${question}" == "0" ]]
then
rm -R "$dossier_du_fichier"
echo "effacement du "$dossier_du_fichier""
exit 0
fi
Hors ligne
#6 Le 08/08/2010, à 20:45
- wido
Re : [RÉSOLU] Supprimer le fichier courant ?
n'oublie pas un petit résolu dans le titre pour le bon travail fourni
Hors ligne
#7 Le 08/08/2010, à 21:50
- ehmicky
Re : [RÉSOLU] Supprimer le fichier courant ?
Pour ce qui est de la question de départ, ton :
rm -vIR *
ne marche pas car * cible l'ensemble des fichiers (ne commençant pas par un point) du répertoire courant, et non le répertoire lui-même.
Sinon :
#!/bin/bash cd ~/Vidéos/Films mv ~/Vidéos/Films/*.mkv ~/Vidéos/Films/ rm -R ~/Vidéos/Films exit
Par contre, pour ce qui est du cd, les chemins qui suivent ne sont pas des chemins relatifs et ne dépendent pas du répertoire courant (même chose pour le dernier script), et le cd est inutile donc.
Et :
question=$(echo $?)
if [[ "${question}" == "1" ]]
then
echo "Tu n'es pas joueur, dommage..."
exit 0
elif [[ "${question}" == "0" ]]
Peut être simplement :
if [[ $? -eq 1 ]] ; then
echo "Tu n'es pas joueur, dommage..."
exit
else
Désolé pour la pinaille
Dernière modification par ehmicky (Le 08/08/2010, à 22:12)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne