Puncte:2

Scripturi Bash: scriptul meu șterge prematur un folder de lucru. Cum repar?

drapel in

Scriptul meu funcționează perfect pentru un singur fișier, dar dacă procesez mai multe fișiere, îmi șterge folderul de lucru prea devreme și este procesat un singur fișier. Dacă nu șterg folderul de lucru, scriptul funcționează cu mai multe fișiere. Iată scenariul meu:

#!/bin/bash
cd /storage/sort_tv/
folderul de lucru mkdir
pentru i în *.mp4;
  do name=`echo "$i" | cut -d'.' -f1`
  echo „$nume”
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
mv -f folder de lucru/* /storage/sort_tv
folderul de lucru rm -rf
Terminat

Cum pot face ca toate fișierele să fie procesate ȘI mutate înainte ca folderul de lucru să fie eliminat?

terdon avatar
drapel cn
De ce folosești `sudo`? Și de ce `rm -rf` în loc de `rm -r`?
Alfke avatar
drapel in
Doar din obișnuință. De ani de zile am folosit mereu rm -rf. Știu că nu este corect din punct de vedere tehnic.
terdon avatar
drapel cn
Nu este greșit, ca atare, ci doar inutil de periculos, deoarece este posibil să pierdeți mesaje de eroare utile sau să ștergeți fișiere protejate la scriere. `Sudo` este cel pe care ar trebui să îl evitați cu adevărat: adică crearea fișierelor pe care nu le dețineți. Și, în general, un obicei bun în care trebuie să te apuci este să nu folosești niciodată `sudo` decât dacă este necesar.
Nate T avatar
drapel it
Problema nu este corectă din punct de vedere tehnic. dacă aveți monturi/ link-uri hard (nu sunt sigur despre acestea din urmă, dar știu sigur că link-urile hard traversează blocuri) pe un sistem de pornire dublă, puteți spune toodle-oo partiției dvs. de Windows. [Acesta](https://askubuntu.com/questions/1354555/i-just-deleted-everything-on-my-windows-system-through-the-ubuntu-subsystem-can/1354571#1354571) este ceea ce `rm -rf` va fi pentru tine. Mă îndoiesc foarte mult pentru asta ai urmărit. Și asta e de acum câteva săptămâni. S-a întâmplat să fie în istoria mea.
Puncte:4
drapel in

Puteți încerca să mutați comenzile rm din buclă. Ca aceasta:

#!/bin/bash
cd /storage/sort_tv/
folderul de lucru mkdir
pentru i în *.mp4;
  do name=`echo "$i" | cut -d'.' -f1`
  echo „$nume”
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
Terminat
mv -f folder de lucru/* /storage/sort_tv
folderul de lucru rm -rf
Alfke avatar
drapel in
Mulțumesc mult. L-am pus să funcționeze!
terdon avatar
drapel cn
Bun venit la Ask Ubuntu, @Alfke! Dacă unul dintre răspunsurile de aici a rezolvat problema dvs., vă rugăm să luați un moment și [acceptați-l](//askubuntu.com/help/someone-answers) făcând clic pe bifa din stânga. Acesta este cel mai bun mod de a vă exprima mulțumirile pe site-urile Stack Exchange.
Muhammed Özen avatar
drapel in
Cu plăcere. Puteți marca întrebarea rezolvată, astfel încât alții să nu piardă timpul cu ea. O zi plăcută

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.