Ví dụ: làm thế nào tôi có thể sao chép:
ls *.txt
khi các tệp văn bản của tôi bị thiếu phần .txt
kết thúc và khi các phần mở rộng xuất hiện giống như nhiều loại tệp khác?
Ngoài ra, có thể liệt kê cụ thể chỉ các tệp có phần mở rộng tệp KHÔNG?
Ví dụ: làm thế nào tôi có thể sao chép:
ls *.txt
khi các tệp văn bản của tôi bị thiếu phần .txt
kết thúc và khi các phần mở rộng xuất hiện giống như nhiều loại tệp khác?
Ngoài ra, có thể liệt kê cụ thể chỉ các tệp có phần mở rộng tệp KHÔNG?
Câu trả lời:
Để khớp với các tệp hoàn toàn không có tiện ích mở rộng, bạn có thể sử dụng lệnh
ls | grep -v '\.'
Để khớp với các tệp không có .txt
phần mở rộng, bạn có thể sử dụng lệnh
ls | grep -v '\.txt'
Điều này sẽ chuyển danh sách các tệp trong thư mục hiện tại grep
, sẽ loại bỏ tất cả các tên tệp có .
(hoặc .txt
cho lệnh thứ hai) trong đó.
grep
có thể được sử dụng với bất kỳ lệnh nào. Các |
biểu tượng được sử dụng để vượt qua đầu ra từ một lệnh khác, và grep
sẽ phù hợp với dòng có (hoặc không có) văn bản cụ thể. Nhưng nếu bạn muốn sửa đổi văn bản (ngoài việc chỉ in các dòng khớp), bạn nên xem sed
lệnh.
ls --classify | grep -v '/'.'*'
Lệnh ls -SX1|less
sẽ sắp xếp theo phần mở rộng trong một cột và các tệp mà không có tệp nào sẽ được chuyển lên trên cùng. Đường ống qua ít hơn như trong ví dụ được đề xuất cho các thư mục có nhiều hơn một vài tệp để giới hạn đầu ra cho một màn hình đầy đủ tại một thời điểm.