web-dev-qa-db-fra.com

Renommer plusieurs fichiers dans le terminal

J'ai 40 fichiers MP4 dans un dossier.

Chaque fichier commence par video_. Chaque fichier est au format video_*.mp4.

Je dois renommer tous les fichiers avec video_ supprimé du début de chaque fichier. Comment puis-je faire cela depuis le terminal?

9
kashish

Vous pouvez le faire par une commande de terminal dans un répertoire où se trouvent ces fichiers.

rename 's/^video_//' *.mp4

Cela signifie que vous sélectionnez tous les noms de fichiers commençant par video_ et que vous remplacez video_ par rien. Je suppose que s est pour "substitute".

^ indique le début de la chaîne. Si vous omettez ^, la première occurrence de video_ sera supprimée quelle que soit sa position dans la chaîne. Mais dans votre cas, cela n'a pas vraiment d'importance.

Note: Les versions Ubuntu supérieures à 17.04 ne sont pas livrées avec le paquet rename, mais vous pouvez toujours l'installer à partir de référentiels par défaut via Sudo apt install rename

22
Pilot6
  • Utilisation de rename (prename):

    rename -n 's/^video_//' video_*.mp4
    

    Si vous êtes satisfait des modifications à apporter, supprimez -n pour que l'opération se produise réellement:

    rename 's/^video_//' video_*.mp4
    
  • Utilisation de l’expansion du paramètre bash:

    for file in video_*.mp4; do mv -i "$file" "${file#video_}"; done
    
    • ${file#video_} est le modèle d’extension de paramètre à supprimer video_ du début des noms de fichiers.

    Ou

    for file in video_*.mp4; do mv -i "$file" "${file/video_/}"; done        
    
    • Celui-ci suppose que video_ ne vient qu'une fois dans les noms de fichiers

    • ${file/video_/} est un modèle d’extension de paramètre bash qui remplacera video_ des noms de fichiers par des blancs.

8
heemayl

Utiliser rename

rename 's/^video_//' *.mp4
3
A.B.