Score:2

Bash scripting: สคริปต์ของฉันลบโฟลเดอร์ทำงานก่อนเวลาอันควร ฉันจะแก้ไขได้อย่างไร

ธง in

สคริปต์ของฉันทำงานกับไฟล์เดียวได้อย่างสมบูรณ์ แต่ถ้าฉันประมวลผลหลายไฟล์ มันจะลบโฟลเดอร์ทำงานของฉันเร็วเกินไป และประมวลผลเพียงไฟล์เดียว ถ้าฉันไม่ลบโฟลเดอร์ทำงาน สคริปต์จะทำงานกับไฟล์หลายไฟล์ นี่คือสคริปต์ของฉัน:

#!/bin/bash
ซีดี /storage/sort_tv/
mkdir โฟลเดอร์ทำงาน
สำหรับฉันใน *.mp4;
  ทำ name=`echo "$i" | ตัด -d'.' -f1`
  echo "ชื่อ $"
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
mv -f workingfolder/* /storage/sort_tv
rm -rf โฟลเดอร์ทำงาน
เสร็จแล้ว

ฉันจะให้ไฟล์ทั้งหมดประมวลผลและย้ายก่อนที่โฟลเดอร์ทำงานจะถูกลบได้อย่างไร

terdon avatar
cn flag
ทำไมคุณถึงใช้ `sudo` แล้วทำไมต้อง `rm -rf` แทนที่จะเป็น `rm -r`
Alfke avatar
in flag
แค่ติดเป็นนิสัย เป็นเวลาหลายปีที่ฉันใช้ rm -rf มาตลอด ฉันรู้ว่ามันไม่ถูกต้องทางเทคนิค
terdon avatar
cn flag
ไม่ใช่เรื่องผิด เป็นเพียงอันตรายโดยไม่จำเป็นเนื่องจากคุณอาจพลาดข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์หรือลบไฟล์ที่ป้องกันการเขียน `sudo` คือสิ่งที่คุณควรหลีกเลี่ยง นั่นคือการสร้างไฟล์ที่คุณไม่ได้เป็นเจ้าของ และนิสัยที่ดีโดยทั่วไปที่ควรปฏิบัติคือ _never_ ใช้ `sudo` เว้นแต่จะจำเป็น
Nate T avatar
it flag
ทางเทคนิคไม่ถูกต้องไม่ใช่ปัญหา หากคุณมีเมานต์ / ฮาร์ดลิงก์ (ไม่แน่ใจเกี่ยวกับสิ่งหลัง แต่ฉันรู้แน่นอนว่าฮาร์ดลิงก์ทำทราเวิร์บล็อก) บนระบบดูอัลบูต คุณสามารถพูดว่า todle-oo กับพาร์ติชัน windows ของคุณ [สิ่งนี้](https://askubuntu.com/questions/1354555/i-just-deleted-everything-on-my-windows-system-through-the-ubuntu-subsystem-can/1354571#1354571)คือสิ่งที่ `rm -rf` จะทำเพื่อคุณ ฉันสงสัยอย่างมากว่านั่นคือสิ่งที่คุณกำลังถ่ายทำ และนั่นเป็นเพียงเมื่อสองสามสัปดาห์ก่อน มันเพิ่งเกิดขึ้นในประวัติศาสตร์ของฉัน
Score:4
ธง in

คุณสามารถลองย้ายคำสั่ง rm ออกจากลูป แบบนี้:

#!/bin/bash
ซีดี /storage/sort_tv/
mkdir โฟลเดอร์ทำงาน
สำหรับฉันใน *.mp4;
  ทำ name=`echo "$i" | ตัด -d'.' -f1`
  echo "ชื่อ $"
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
เสร็จแล้ว
mv -f workingfolder/* /storage/sort_tv
rm -rf โฟลเดอร์ทำงาน
Alfke avatar
in flag
ขอบคุณมาก. ฉันได้มันทำงาน!
terdon avatar
cn flag
ยินดีต้อนรับสู่ Ask Ubuntu, @Alfke! หากคำตอบข้อใดข้อหนึ่งช่วยแก้ปัญหาของคุณได้ โปรดใช้เวลาสักครู่และ [ยอมรับ](//askubuntu.com/help/someone-answers) โดยคลิกที่เครื่องหมายถูกทางด้านซ้าย นั่นเป็นวิธีที่ดีที่สุดในการแสดงความขอบคุณบนเว็บไซต์ Stack Exchange
Muhammed Özen avatar
in flag
ด้วยความยินดี. คุณสามารถทำเครื่องหมายคำถามที่แก้ไขแล้ว เพื่อที่คนอื่นจะได้ไม่เสียเวลากับคำถามนั้น ขอให้เป็นวันที่ดี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา