2012-03-06 32 views
5

Tôi đang cố gắng sử dụng lệnh tìm để tìm tất cả các tệp 'M *' từ thư mục làm việc của tôi và hiển thị kết quả theo thứ tự thư mục.tìm kết quả liệt kê lệnh theo thứ tự thư mục

Thay vào đó, nó tiếp tục hiển thị kết quả theo thứ tự sắp xếp khiến một số thư mục sâu hơn được liệt kê đầu tiên vì chúng theo thứ tự bảng chữ cái.

$ find -name 'M*' 
./MyFourth 
./s/MyFirst 
./s/v/b/MyThird 
./s/v/MySecond 

Tôi muốn nó được theo thứ tự này:

./MyFourth 
./s/MyFirst 
./s/v/MySecond 
./s/v/b/MyThird 

Nhờ sự giúp đỡ của bạn

+0

python, ruby, perl ...? –

+0

http://stackoverflow.com/a/120701/650405 –

Trả lời

4

Nếu tôi hiểu đúng những gì bạn có nghĩa là bởi "để thư mục", điều này sẽ giúp:

find -name 'M*' -printf '%p\t%d\n' | sort -n -k2 | cut -f 1 

Nó in các tệp được sắp xếp theo chiều sâu của chúng trong cây thư mục.

+1

không may là việc tách danh sách nội dung và thư mục con của thư mục. – blueshift

1
$ find . -name 'M*' | awk -F/ '{print NF,$0}' | sort -k1,1n -k2 | cut -d' ' -f 2- 
./MyFourth 
./s/MyFirst 
./s/v/MySecond 
./s/v/b/MyThird 
Các vấn đề liên quan