Điểm:2

Làm cách nào để xóa các thư mục có số dưới dạng tên tệp trong Ubuntu bằng dòng lệnh?

lá cờ in

Tôi có một thư mục chứa các thư mục con có số là thư mục. Ví dụ tôi có một thư mục mẹ kiểm tra bây giờ tôi có một số thư mục con như 1,2,3,4,5,6,7. Bây giờ tôi có một biến xuất cục bộ như xuất a=3. Tôi muốn xóa các thư mục trên hoặc bằng $athấp hơn hoặc bằng $a+3, Vì vậy, tôi muốn xóa các tập tin 4,5. Làm thế nào tôi có thể đạt được điều này trong Ubuntu 18.04.6 LTS.

tôi đã thử rm -rf {$a..$($a+3)}, nó không hoạt động, tôi đã thử rất nhiều thứ khác nhưng không thành công.

David avatar
lá cờ cn
Thực sự không có gì để làm với hệ điều hành. Câu hỏi đặt ra là làm thế nào để thực hiện điều này trong tập lệnh hoặc dòng lệnh.
Space Impact avatar
lá cờ in
@David đâu sẽ là nơi thích hợp để đăng bài này? Bạn có thể vui lòng đề nghị?
David avatar
lá cờ cn
Thật tốt khi ở đây chỉ cần rõ ràng rằng đó không phải là vấn đề của hệ điều hành. Lệnh hoặc tập lệnh sẽ giống nhau trên Linux.
mchid avatar
lá cờ bo
@David Bạn có thể nói điều đó về hầu hết mọi câu hỏi ở đây. Nếu họ đang sử dụng Ubuntu, nó sẽ nằm trong chủ đề này.
mchid avatar
lá cờ bo
Vui lòng bao gồm phiên bản Ubuntu bạn đang sử dụng. Cảm ơn.
Space Impact avatar
lá cờ in
@mchid đã thêm phiên bản Ubuntu mà tôi đang sử dụng.
James S. avatar
lá cờ de
Bạn có thể gặp may mắn hơn khi đặt câu hỏi này ở một nơi tổng quát hơn, vì đó không phải là câu hỏi về Ubuntu. thử: https://unix.stackexchange.com/
bac0n avatar
lá cờ cn
Bạn chỉ có thể sử dụng các ký tự số nguyên hoặc ký tự đơn bên trong một biểu thức trình tự, mở rộng dấu ngoặc nhọn được thực hiện trước bất kỳ phần mở rộng nào khác, sẽ không có bất kỳ diễn giải nào về văn bản giữa các dấu ngoặc nhọn và mở rộng dấu ngoặc nhọn được định dạng không chính xác sẽ không thay đổi. Tuy nhiên, bạn có thể thực hiện `eval rm {$a..$((a+2))}`.
Điểm:2
lá cờ cn

Một giải pháp khả thi:

rm -r $(seq $a $((a+3)))

(Miễn là bạn thực sự muốn nói những gì bạn đã minh họa bằng mẫu mã của mình, tức là. các thư mục ở trên hoặc bằng $a và dưới đây hoặc bằng $a+3, thay vì những gì bạn đã viết trong văn bản, "ở trên >$3 nhưng bên dưới <$3+2".

Space Impact avatar
lá cờ in
Nó hoạt động, Cảm ơn câu trả lời. Tôi sẽ chỉnh sửa câu hỏi.
Space Impact avatar
lá cờ in
Làm cách nào để xóa mọi thứ nhỏ hơn hoặc bằng `$a-1` nhưng không biết số nhỏ nhất với một thư mục?
Tilman avatar
lá cờ cn
Chỉ cần `rm -rf $(seq 1 $((a-1)))`. Nó sẽ xóa các thư mục hiện có và tùy chọn `-f` sẽ chặn các thông báo lỗi về những thư mục không tồn tại.
Điểm:0
lá cờ gb

Bạn có thể sử dụng phương pháp sau để xóa thư mục hoặc tệp.

  1. Gửi đầu ra của thư mục tương ứng tới một tệp văn bản ls >> text.txt

  2. Chỉnh sửa tệp text.txt để xóa tất cả các mục nhập mà bạn không muốn xóa.

  3. ra lệnh sudo rm -r -i $(cat text.txt). Sử dụng -tôi gắn cờ nếu bạn muốn quá trình tương tác.

  4. Khi xóa tệp, không sử dụng -r lá cờ.

Phương pháp này sẽ hoạt động khi các thư mục mà bạn muốn xóa không theo thứ tự liên tiếp.

Cyrus avatar
lá cờ cn
Đây là nơi tôi nổi da gà. Xin lưu ý: [Tại sao *không* phân tích cú pháp `ls`?](http://unix.stackexchange.com/questions/128985/why-not-parse-ls)
AjayC avatar
lá cờ gb
Cảm ơn, tôi không nghĩ mình có đủ kỹ năng để hiểu đầy đủ những điểm phức tạp/vấn đề với lệnh ```ls``` như đã giải thích trong bài đăng. Thành thật mà nói, tôi chưa thấy tên tệp hoặc tên thư mục phức tạp như vậy.

Đă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.