Điểm:2

Tập lệnh Bash: tập lệnh của tôi xóa thư mục đang hoạt động sớm. Làm thế nào để tôi sửa chữa?

lá cờ in

tập lệnh của tôi hoạt động hoàn hảo cho một tệp duy nhất, nhưng nếu tôi xử lý nhiều tệp, nó sẽ xóa thư mục làm việc của tôi quá sớm và chỉ một tệp được xử lý. Nếu tôi không xóa thư mục làm việc, tập lệnh sẽ hoạt động với nhiều tệp. Đây là kịch bản của tôi:

#!/bin/bash
cd /storage/sort_tv/
thư mục làm việc mkdir
cho tôi trong *.mp4;
  do name=`echo "$i" | cắt -d'.' -f1`
  tiếng vang "$name"
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
thư mục làm việc rm -rf
xong

Làm cách nào tôi có thể xử lý tất cả các tệp VÀ di chuyển trước khi thư mục làm việc bị xóa?

terdon avatar
lá cờ cn
Tại sao bạn lại sử dụng `sudo`? Và tại sao `rm -rf` thay vì `rm -r`?
Alfke avatar
lá cờ in
Chỉ vì thói quen. Trong nhiều năm, tôi luôn sử dụng rm -rf. Tôi biết nó không đúng về mặt kỹ thuật.
terdon avatar
lá cờ cn
Như vậy, điều đó không sai, chỉ là nguy hiểm không cần thiết vì bạn có thể bỏ lỡ các thông báo lỗi hữu ích hoặc xóa các tệp được bảo vệ chống ghi. `sudo` là thứ bạn thực sự nên tránh: đó là tạo các tệp mà bạn không sở hữu. Và một thói quen tốt nói chung là _không bao giờ_ sử dụng `sudo` trừ khi cần thiết.
Nate T avatar
lá cờ it
Không đúng kỹ thuật không phải là vấn đề. nếu bạn có gắn kết/liên kết cứng (không chắc về cái sau, nhưng tôi biết chắc chắn rằng các liên kết cứng thực hiện các khối đi ngang) trên hệ thống khởi động kép, bạn có thể nói toodle-oo với phân vùng cửa sổ của mình. [Cái này](https://askubuntu.com/questions/1354555/i-just-deleted-everything-on-my-windows-system-through-the-ubuntu-subsystem-can/1354571#1354571) là gì `rm -rf` sẽ làm cho bạn. Tôi rất nghi ngờ đó là những gì bạn đang chụp cho. Và đó chỉ là từ một vài tuần trước. Nó chỉ xảy ra trong lịch sử của tôi.
Điểm:4
lá cờ in

Bạn có thể thử di chuyển các lệnh rm ra khỏi vòng lặp. Như thế này:

#!/bin/bash
cd /storage/sort_tv/
thư mục làm việc mkdir
cho tôi trong *.mp4;
  do name=`echo "$i" | cắt -d'.' -f1`
  tiếng vang "$name"
sudo ffmpeg -i "$i" -map_metadata -1 -c:v copy -c:a copy -map 0:a -map 0:v "workingfolder/${i%.*}.mp4" &&
xong
mv -f workingfolder/* /storage/sort_tv
thư mục làm việc rm -rf
Alfke avatar
lá cờ in
Cảm ơn bạn rất nhiều. Tôi đã làm cho nó hoạt động!
terdon avatar
lá cờ cn
Chào mừng bạn đến với Hỏi Ubuntu, @Alfke! Nếu một trong những câu trả lời ở đây giải quyết được vấn đề của bạn, vui lòng dành chút thời gian và [chấp nhận nó](//askubuntu.com/help/someone-answers) bằng cách nhấp vào dấu kiểm bên trái. Đó là cách tốt nhất để bày tỏ lời cảm ơn của bạn trên các trang Stack Exchange.
Muhammed Özen avatar
lá cờ in
Không có gì. Bạn có thể đánh dấu câu hỏi đã được giải quyết để những người khác không lãng phí thời gian cho nó. Chúc một ngày tốt lành

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.