Spostare i file in singole cartelle, utilizzando il nome del file come convenzione di denominazione delle cartelle per la cartella, utilizzando Terminale

0

Ho cercato una risposta sul web ora per alcune ore e non riesco a trovare quello che sto cercando. Quello che voglio fare è spostare ciascun file in una directory in una nuova cartella usando il nome del file, escludendo l'estensione.

/Movies/Filname.avi --- > /Movies/Filename/Filename.avi

So come fare ogni singolo file, ma posso farlo in senso stretto per l'intera cartella usando un comando o uno script.

    
posta moosethemucha 18.02.2014 - 01:56
fonte

1 risposta

1

Questo dovrebbe fare il trucco.

#!/bin/bash
shopt -s nullglob    #avoid problems in directory with no files
ext=avi              #the file extension to search for
for f in *.$ext; do
    d="${f##/}"      #gives us just the filename
    d="${d%.$ext}"   #strips the file extension
    mkdir "$d"       #makes the directory
    mv "$f" "$d/$f"  #moves the file
done
    
risposta data 18.02.2014 - 06:36
fonte

Leggi altre domande sui tag