Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink

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 yikes

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 tongue

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 tongue

#!/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 smile 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 big_smile

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 :

wido a écrit :
#!/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 smile

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