Comment renommer des fichiers

Y a bien un balaise qui va me trouver ça …

Je veux faire un nautilus-script sur une base:
for arg
do
renomme les fichiers du répertoire en leur donnant le nom du répertoire incrémenté de 1
done

Ca se peut ?

Merci

Je regarde quel langage c’est et comment ça s’intègre à nautilus et je te dis.

D’après le site d’ubuntu il ne faut pas utiliser les arguments du script mais la variable d’environnement $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS :

[code]

Ce qui sépare les éléments de la liste dans la variable

c’est un retour à la ligne et surtout pas un espace

IFS=’
'
i=1

for $file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do

Je viens de voir que les regexp de bash sont pas

aussi bien faites qu’en sed donc on va passer par sed

dest=$(echo $file | sed -e ‘s//([^/])/[^/]$//\1/\1/’)
mv $file $dest$i
((++i))
done[/code]

Salut,
Merci de m’avoir envoyé ces commandes.
Ca ne marche pas, quand je lance le script sur le répertoire pour renommer les fichiers contenus dans ce répertoire mais les commandes me permettront une base pour j’espère trouver
Pas trop le temps en ce moment.
Bonne journée

Je me suis penché sur la question, ça vaut ce que ça vaut (autodidacte)
Le but est de renommer les fichiers contenus dans un répertoire en leur donnant le nom du répertoire incrémenté de un. Le nautilus-script donc:
##########################################
#!/bin/bash
for arg
do
i=0
for file in ls "$arg"/
do
i=$(($i+1))
cd “$arg”/
ext=ls $file | cat | cut -d. -f2
mv $file “$arg”-"$i".$ext
done
done
#########################################
Vos commentaires ?
Merci à ceux qui m’on orientés

Avec cd -
en fin de script, on peut executer sur plusieurs répertoires
##########################################
#!/bin/bash
for arg
do
i=0
for file in ls "$arg"/
do
i=$(($i+1))
cd “$arg”/
ext=ls $file | cat | cut -d. -f2
mv $file “$arg”-"$i".$ext
cd -
done
done
#########################################