fbouwman Geplaatst: 30 mei 2017 Geplaatst: 30 mei 2017 @De_Perre Mooi script :-) Toch nog even: > Het is net de bedoeling om de bestanden te renamen zodat ze eventueel na download op PC > of move naar een ander storage deze ook die nieuwe naam hebben. > Dat gaat niet lukken met symbolic links denk ik. Jawel. Dat gaat prima. Zeker als je de copy op Windows uitvoert zal Windows geen idee hebben dat er een symbolic link staat en gewoon keurig de hele file copieren onder de nieuwe naam. > En de vrees qua schijfruimte lijkt me ook onterecht omdat er geen copy wordt gedaan, maar een filemove; Het verschil is dat jouw script onomkeerbaar is. Als het fout gaat, kun je niet meer terug. In het geval van de linked methode gooi je gewoon het resultaat weg als je ontevreden bent en kun je gewoon opnieuw beginnen. Als je een hardlink gebruikt (ln zonder -s) kun je zelfs de source directory weggooien als je klaar bent omdat bij hard links de file content past verdwijnt als alle referenties zijn verwijderd. Uno 4K + Wavefrontier T90 + OpenATV + DNS323
De_Perre Geplaatst: 5 juni 2017 Geplaatst: 5 juni 2017 Net even getest met een 'ln -s' en lijkt inderdaad wel te lukken. Zal het script later deze week dan wel even aanpassen en opnieuw posten. [Vu+ Solo4K] - [VTi 13.x] [TVV Basic+] - [CD TopHD]Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...
De_Perre Geplaatst: 9 juni 2017 Geplaatst: 9 juni 2017 Zoals beloofd, nieuwe versie met aanmaak van symbolic link in plaats van filemove. Stuk code voor filemove zit er nog steeds in. #!/bin/sh ###### # Script om bestandsnamen van opnames te gaan aanpassen ## #Geef wat feedback in de console; toon waar je mee bezig bent #Uncomment wanneer je de terminal output wil zien #set -x #####Variabelen die we gebruiken startdate=$(date +"%Y%m%d-%H%M") dir_in=/media/hdd/movie_tmp dir_out=/media/hdd/movie_out logdir=/media/hdd/renamelogs rename_script_log=$logdir/rename_$startdate".log" filelist=$logdir/filelist_$startdate.log filelist2=$logdir/filelist_$startdate"_2".csv #####Functies fn_check_inputdir() { if [ ! -d $dir_in ] then echo "Input dir bestaat niet; script wordt afgebroken - error 6" >> $rename_script_log exit 6 fi } fn_check_outputdir() { if [ ! -d $dir_out ] then echo "Output dir bestaat niet; script wordt afgebroken - error 7" >> $rename_script_log exit 7 fi } fn_check_logdir() { if [ ! -d $logdir ] then mkdir $logdir fi } fn_create_list_files() { #functie die de lijst maakt van bestanden aanwezig in de input dir ($dir_in); en die in een logbestand wegschrijft #Hiervoor wordt het find commando gebruikt # '! -mtime -1' zorgt er voor dat bestanden die de laatste minuut zijn aangepast niet mee in del ijst terecht komen # '! -name ".vdirinfo*" zal er voor zorgen dat bestanden die beginnen met '.vdirinfo' uitgesloten worden en niet mee in de lijst terecht komen # het stukje sed zal er voor zorgen dat de naam van het bestand weggeschreven wordt zonder './' in het begin cd $dir_in find . -type f ! -mtime -1 ! -name ".vdirinfo*" | sed 's|./||' >> $filelist } fn_process_filelist() { #functie die doorheen de filelist loopt en de bestandnaam opbouwt + de filemove doet ## gewenste output formaat = eerst de naam, dan de datum, en dan de zender # progNAAM zal nog verder opgesplitst moeten worden => de naam en de extensie van het bestand # bij progEXT wordt er gekeken naar het aantal fields in de input. Indien er maar 2 zijn, zal hij enkel de laatste gebruiken voor de extensie (bv .ts); # anders gaat hij de 2de en 3de gebruiken while read Line do progDATUM=`echo $Line | awk -v FS=" - " ' { print $1 } '` progSERVICE=`echo $Line | awk -v FS=" - " ' { print $2 } '` progNAAM=`echo $Line | awk -v FS=" - " ' { print $3 } ' ` progNAAMBASE=`echo $progNAAM | awk -v FS="." ' { print $1 } '` #progEXT=`echo $progNAAM | awk -v FS="." ' { print $2"."$3 } '` #nog nakijken; variabel aantal extensies!! progEXT=`echo $progNAAM | awk -v FS="." ' { if (NF==2) {print $2} else if (NF==3) {print $2"."$3} } '` newFileNAAM=$progNAAMBASE" - "$progDATUM" - "$progSERVICE"."$progEXT echo $Line";""$newFileNAAM" >> $filelist2 ####Dit stuk zal een filemove doen; uncomment de volgende 3 lijnen wanneer je dit wil doen door het #-teken weg te nemen #echo "> Move van $dir_in/$Line naar $dir_out/$newFileNAAM"| tee -a $rename_script_log #mv "$dir_in/$Line" "$dir_out/$newFileNAAM" | tee -a $rename_script_log #echo "--> Move van $dir_in/$Line naar $dir_out/$newFileNAAM voltooid"| tee -a $rename_script_log ####Einde filemove ####Dit stuk creert symbolic links naar de originele filenames. Zet deze lijnen in commentaar door een #-teken aan het begin van de lijn te zetten echo "> Aanmaak symbolic link met naam $dir_out/$newFileNAAM en verwijzend naar $dir_in/$Line"| tee -a $rename_script_log ln -s "$dir_in/$Line" "$dir_out/$newFileNAAM" echo "--> Aanmaak symbolic link voltooid"| tee -a $rename_script_log #### done < $filelist echo "## $filelist is nu verwerkt" | tee -a $rename_script_log } ##Start verwerking door oproepen functies ###Check logdir fn_check_logdir ###Check input en output dirs fn_check_inputdir fn_check_outputdir ###maak lijst bestanden fn_create_list_files ###verwerking van de lijst fn_process_filelist ##Eventuele opkuis van logs/tijdelijke bestanden/... #rm $filelist ##The exit is near... exit 0 txt bestand downloaden; filelocaties aanpassen (dir_in; dir_uit; log locatie); en '.txt' vervangen door '.sh'. Rename_movies.txt [Vu+ Solo4K] - [VTi 13.x] [TVV Basic+] - [CD TopHD]Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen