Cách ẩn tất cả các tệp trong một thư mục thông qua thiết bị đầu cuối hoặc tập lệnh


1

Tôi có một thư mục nằm ở /home/makgun/Desktop/a\ bđó

Tôi đã thử lệnh này mv /home/makgun/Desktop/a\ b/* /home/makgun/Desktop/a\ b/.*để đổi tên tất cả các tệp .FILENAMEthành bị ẩn nhưng nó cũng không hoạt động. Nó đã xóa tất cả các tệp (May mắn thay, tôi đã thử lệnh này với "thư mục thử" và tôi đã sao chép 2 tệp vào thư mục này. Nhưng sau lệnh này chúng là đã xóa not hidden)

Vì vậy, những gì tôi cần nhập vào dòng lệnh để ẩn tất cả các tệp trong một thư mục.


Bạn phải tạo một "vòng lặp". Xin lỗi tôi không ở máy tính của tôi vì vậy tôi không thể cung cấp cho bạn lệnh chính xác.
Zalmy

1
cd vào thư mục đích, "cho f trong *; làm mv $ f. $ f; xong"
Zalmy

Có, nó hoạt động nhưng nếu tên tệp có ký tự khoảng trắng thì nó không hoạt động. (có một tệp được gọi là A filecó ký tự khoảng trắng) Làm thế nào để tôi thực hiện loại tệp này?
makgun

1
Kèm theo "$ f" và ". $ F" trong ngoặc kép.
Zalmy

1
@Zalmy Cảm ơn zalmy vì phản ứng nhanh chóng của bạn.
makgun

Câu trả lời:


1

Điều này được thực hiện bằng cách sử dụng một vòng lặp for.

Điều hướng đến thư mục đích. Sau đó chạy lệnh dưới đây

for f in *; do mv "$f"  ".$f" ;  done

Tôi tự hỏi làm thế nào tôi có thể quay trở lại? Bởi vì nó sẽ cần thiết cho tôi sau 1 tháng.
makgun

2

Để bỏ ẩn các tập tin sử dụng for f in .*;do mv "$f" ${f:1}; done.

Kiểm tra nó đầu tiên chỉ để đảm bảo nó không phá vỡ bất cứ điều gì.

Giải thích for f in .* tạo ra một vòng lặp của tất cả các tệp bắt đầu .để phân tích cú pháp. Tôi đã sử dụng ${f:1}chức năng chuỗi con bash.

Cảm ơn bạn


1
Nhân tiện, để kiểm tra, sử dụng for f in .*; do echo mv "$f" "${f:1}"; done. Đó là một thực hành tốt để kiểm tra các kịch bản của bạn như thế. Sau đó, bạn có thể viết done | bashthay vì done.
theoden
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.