32. lệnh dùng liệt kê danh sách các tập tin có ký tự cuối cùng trong tên là ‘?’
Quản lí file1. Danh mục câyFile hệ thống của Linux đặt ra như một "danh mục cây"directory tree. Có một thư mục root (ký hiệu /), với mọi danh mục khác có "nguồn gốc" danh mục, và mỗi danh mục đều chứa các thư mục đơn Show Đây chính là biểu đồ của thư mục cây: / |—— bin |—— dev |—— usr | |—— bin | |—— lib | |—— libexec | |—— local | |—— sbin | |—— share |... |... Vậy dấu / là một danh mục, usr là thư mục có nguồn gốc từ /, lib là danh mục có nguồn gốc từ usr và cứ như thế. Dùng dấu / để chỉ vào danh mục tương ứng như /usr/lib Đường dẫn như /usr/lib được gọi là "đường dẫn tuyệt đối" (absolute path) kể từ khi đường dẫn được chỉ định rõ ràng đầy đủ bắt đầu từ thư mục root /. Đặc tính của thư mục con . và ..Mọi thư mục điều có 2 đặc tính thư mục con "virtual": . và .. Chúng ta đã sử dụng thư mục con theo cách relative hoặc reflexive. Dấu . trong danh mục luôn luôn chỉ tới tới "danh mục hiện tại" và tư mục hiện tại luôn luôn chỉ tới "danh mục gốc" Vậy, ví dụ nhé: /usr/share.. là một đường dẫn thư mục hợp lệ và chỉ tới thư mục gốc của /usr/share . . và .. được sử dụng nhiều khi điều hướng tập tin hệ thống (file system) từ dòng lệnh. Ví dụ cd .. sẽ khiến cho shell đổi từ thư mục hiện tại sang tư mục gốc. 2. Xem nhiều tệp tin với WildcardsKhi xem xét nhiều files từ dòng lệnh. bạn có thể sử dụng ký tự wildcard như * và ? chỉ đến nhóm của file đó (gọi là glods). Dấu * WildcardDấu * Wildcard được hiểu là "bất kỳ số ký tự bao gồm cả none". Ví dụ: Nếu bạn muốn di chuyển mọi file với đuôi .mp3 từ thư mục hiện tại đến thư mục ~/music, bạn có thể chạy những dòng lệnh sau: $ mv *.mp3 ~/music Dấu ? WildcardDấu ? Wildcard phù hợp với bất kỳ ký tự duy nhất. Ví dụ: ??? sẽ khớp với mọi tệp với tên có duy nhất 3 ký tự Dấu [...] WildcardBạn cũng có thể dùng nó với cái ký tự cụ thể Ví dụ: .*mp[34] sẽ lấy bất kỳ file này có đuôi mp3 và mp4 [CcBb]at sẽ lấy **Cat,cat,Bat **và bat Hãy cẩn thận với khoảng trắngHãy cẩn thận khi sử dụng * như khoảng trắng đặt sai hoặc ký tự nào đó có thể gây lỗi. Chú ý khoảng trắng giữa * và .mp3: $ mv * .mp3 ~/music Cái này sẽ di chuyển tất cả các file có * và file có tên .mp3 đến dicrectory ~/music. Nhưng mọi file đều có *, nên chúng ta có thể sẽ phải di chuyển tất cả mọi file sang directory ~music . Tương tự thế, Hãy tưởng tượng sự khác nhau giữa rm *.mp3 (loại bỏ cái file mp3) và rm * .mp3 (nó vô tình loại bỏ tất cả file)
3. Sử dụng which để tìm đường dẫn thực thiKhi bạn gõ tên của một chương trình trong shell prompt, **shell**của bạn sẽ sử dụng biến môi trường PATH để xác định thực thi nào sẽ chạy. Sẽ đọc nhanh sơ qua tất cả các directory đã liệt kê trong PATH của bạn, làm sao bạn biết cái nào trong shell của bạn để thực thi? Đó chính là những gì mà lệnh which thực hiện. Đặt tên của một chương trình, which sẽ trả về 1 đường dẫn đầy đủ để thực thi lệnh. Hãy nhìn dưới đây: Điều này cho tôi biết rằng khi tôi gõ ps tại terminal thì shell của tôi sẽ chạy lệnh thực thi ở đường dẫn /bin/ps Lưu ý: những đường dẫn này hoàn toàn là giả thuyết và bạn có thể không thấy cùng một đầu ra trên hệ thống của riêng bạn. Có 2 trường hợp chính để bạn dùng which :
Trường hợp 2 rất thường dùng công cụ để gỡ lỗi, đặc biệt nếu bạn đã từng thử thiết lập môi trường phát triển nơi mà bạn có thể có nhiều trình biên dịch / thông dịch... chẳng hạn như python 3.8.5, gcc 10.1, java 14.0.1... 4. Sử dụng find để tìm kiếm bằng tên fileLệnh find được sử dụng để tìm kiếm files trên máy tính. Một trong những điều phổ biến nhất là sử dụng để là tìm kiếm file dựa trên tên của nó, mặc dù nó có còn làm được nhiều thứ hơn thế. Đây là một ví dụ nhỏ: bạn sẽ in ra tên của mọi file có đuôi mp4 trong directory Downloads $ cd Downloads $ find . -name "*.mp4" Bạn hãy nhớ lại rằng dấu . là tượng trưng cho "danh mục hiện tại". Bạn có thể thay đổi dấu . bởi bất kỳ tên directory nào và lệnh find sẽ chạy để tìm kiếm nó. Từ -name để nói cho lệnh find rằng nó tìm kiếm dựa trên tên file và yêu cầu một mẫu khớp với file. Trong trường hợp này "*.mp4" sẽ là mẫu file có bất kỳ đuôi nào là .mp4 Hạn chế kiểu fileĐôi khi bạn chỉ muốn tìm kiếm file và không có directory hoặc ngược lại. Lệnh -type cho phép chúng chỉ định có nên tìm kiếm các file hay chỉ các thư mục Đây là lệnh tìm mọi file (nhưng không có directory) mà tên của nó chứa chuỗi "user": $ find . -type f -name "*user*" Nếu chúng ta muốn tìm directory, chúng ta có thể dùng lệnh -type d để find. Do đó, trong ví dụ đầu tiên, nếu bạn muốn tìm file kỹ hơn một tý, tìm tất cả file có đuôi là mp4 bạn sẽ sử dụng lệnh sau đây: $ find . -type f -name "*.mp4"
5. Sử dụng find để tìm kiếm bằng kích thước fileLệnh find được sử dụng tìm kiếm file trên máy tính của bạn. Nó thường sử dụng nhiều để tìm kiếm bằng kích thước file... nếu bạn muốn tìm xoá các tệp lớn. Đây là lệnh để tìm tất cả file lớn hơn 100MB trong thư mục hiện tại: $ find . -type f -size +100M Dấu + trong +100M biểu diễn cho "ít nhất 100MB". Nếu thay vào đó chúng ta sử dụng -size100MB, find sẽ chỉ tìm những file có đúng 100MB (chứ không có khoảng 100MB) Đầu ra của lệnh này sẽ liệt kê cơ bản của tên file mà không có bất kỳ thông tin kích thước nào. Để bao gồm nhiều thông tin hơn chúng ta sẽ dùng lệnh như sau: $ find . -size +100M -exec ls -lh {} \; Lựa chọn -exec để cho find thực hiện cụ thể lệnh cho từng kết quả, thay thế dấu {} với tên của file. Dấu \; chỉ rõ cuối cùng của dòng lệnh sẽ được thực hiện. Trong trường hợp này, tôi gọi ls -lh cho từng tôi tôi tìm. trong ls, -l sẽ xuất ra màn hình bao gồm cái kích thước file, quyền file, và chi tiết khác. -h sẽ sẽ gọi ls định dạng lại kích thước file cho mình dễ hiểu. Ví dụ nếu không có -h sẽ là 576716800 (576716800 bytes) còn có -h sẽ là 550M (550MB). Chú ý: bạn có thể sử dụng bất kỳ dùng lệnh nào với -exec mà không chỉ ls.
|