Có thể xóa thư mục khi trong thư mục trong shell


0

Tôi có một thư mục mà tôi chạy một chương trình.
/ usr / bin / my-dir

Tôi cần chạy chương trình từ trong thư mục Vì vậy tôi phải đi     cd / usr / bin / my-dir     ./chương trình của tôi

Tôi có một đoạn script từ một máy từ xa cập nhật chương trình của tôi như thế này:     rm -rf / usr / bin / my-dir     mv my-chương trình / usr / bin / my-dir

Vấn đề là khi tôi có ssh'd vào máy và đang trong thư mục / usr / bin / my-dir Kịch bản thất bại vì nó không thể thực hiện thành công rm -rf / usr / bin / my-dir (nó xóa tất cả nội dung nhưng không phải thư mục)

Có cách nào khác không (ví dụ: một số cách để định cấu hình shell để cho phép xóa thư mục trong khi tôi đang ở trong đó?) Hoặc một số giải pháp khác? Hiện tại tôi cd ra khỏi thư mục, chạy script và sau đó cd trở lại thư mục nhưng tôi phải làm điều này hàng trăm lần một ngày - phải có cách hiệu quả hơn để làm điều này.


chỉ cần đặt cd ~; ở phía trước của kịch bản cập nhật? bạn cũng có thể đặt cd /usr/bin/my-dir vào cuối để sau khi di chuyển bạn nhảy trở lại. bạn đang chạy tất cả các lệnh này trong một tập lệnh, phải không? nếu không, hãy xem xét nó, khi bạn làm điều này hàng trăm lần mỗi ngày.
Frank Thomas

Thay phiên, bạn có thể sử dụng rmdir /usr/bin/my-dir để xóa thư mục sau khi bạn đã rm -rf'ed nó. m
Frank Thomas

Cảm ơn Frank - việc này không hiệu quả nhưng nó khiến tôi suy nghĩ đúng hướng - là thư mục thực sự đã bị xóa
simmons

Câu trả lời:


0

Chỉ trong trường hợp nó giúp được cho bất cứ ai. Nó chỉ ra rằng cách shell hoạt động là nếu một thư mục hiện tại bị xóa trong một thể hiện khác của shell, sau đó được tạo lại và điền vào các tệp, shell ban đầu sẽ hiển thị một thư mục trống.

Để xem lại các tập tin, chỉ cần đi

cd .

Điều này dẫn đến việc giải quyết vấn đề ban đầu bằng cách không xóa chính thư mục (chỉ xóa và thay thế các tệp cụ thể).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.