Tương đương với Unix (QNX) của dòng lệnh Windows là dir dir / s / b là gì


9

Câu hỏi Tương đương với Linux của tên tệp DOS dir / s / b là gì? đến gần nhưng nó kết thúc chơi một hoạt động tìm tập tin cho tất cả các tên tập tin được đặt tên như vậy.

Tuy nhiên, tôi đang tìm cách so sánh nội dung thư mục với một thư mục trên máy Windows và so sánh nó với thư mục được xây dựng tương tự trên hộp QNX . Tôi muốn chạy lệnh liệt kê thư mục trên cả hai máy, thực hiện một số thao tác tệp văn bản để chuyển đổi các ký tự phân cách đường dẫn và ổ đĩa gốc và những gì không để chúng thành một định dạng tương thích cho một khác biệt sâu sắc.

Tôi có thể tạo ra một biểu hiện thư mục của tất cả các thư mục con và các tập tin trong đó có dir /b /s, và nhận được đầu ra định dạng như một loạt các con đường ...

c:\Temp>dir /b /s
c:\Temp\Subfolder1
C:\Temp\Subfolder1\File1.txt
C:\Temp\Subfolder1\File2.txt
...

Tôi có thể thấy dir /strở thành ls -R, nhưng làm thế nào để tôi có được /Btương đương với định dạng đầu ra đường dẫn?


6
Câu trả lời giống như trong câu hỏi khác, ngoại trừ bạn bỏ -nametùy chọn, vì vậy nó không lọc theo tên.
Barmar

Câu trả lời:


14

findcó thể cung cấp cho bạn tất cả những gì bạn cần. Nó có nhiều chi phí hơn một chút vì nó thực hiện nhiều thử nghiệm hơn lsmột mình, nhưng nếu bạn muốn thông tin đường dẫn trong đầu ra thì đây có thể là cách đơn giản nhất để đạt được điều đó.

Nếu bạn sẽ so sánh hai hệ thống, thì có lẽ bạn nên thực hiện một số chỉnh sửa văn bản trước và trao đổi \với /và xóa C:tiền tố. Sau đó sắp xếp danh sách và sử dụng diffđể phát hiện ra những thay đổi. sedsẽ là bạn của bạn ở đây Theo dõi với một bình luận nếu bạn cũng muốn điều này.


18

Không có cờ lsnào sẽ thực hiện những gì bạn yêu cầu, nhưng bạn có thể thực hiện nó với một số công cụ khác, dễ nhất (có thể) find:

find .

2
hoặc đơn giản find Biểu thức mặc định là.
user4556274 17/2/2017

3
Thật. Dù sao, tôi nghĩ rằng đó là một cách thực hành tốt để bao gồm các mặc định trong các bài đăng Q / A, vì chúng có thể không rõ ràng đối với mọi người.
Bruno9779

19
@ user4556274 Nó có thể dành cho GNU find, nhưng các triển khai khác tuân theo tiêu chuẩn POSIX và yêu cầu một toán hạng thư mục.
Kusalananda

5

cây -if

-i để không thụt lề -f để in đường dẫn


Thật thú vị, hiển thị một số đầu ra giao diện điều khiển cho câu trả lời của bạn; Tôi không thể tìm thấy lệnh đó từ hộp QNX của mình-bash: tree: command not found
jxramos 17/2/2017

Tôi đang ở trên điện thoại của mình nên không thể kiểm tra nó, nhưng nó ở trang nam tại linux.die.net/man/1/tree
Stephen C

1
Đó là từ mama.indstate.edu/users/ice/tree và được đóng gói như treetrong một số bản phân phối Linux.
deltab

treelà công cụ lựa chọn của tôi để kiểm tra cấu trúc thư mục, nhưng nó không được cài đặt theo mặc định trên hầu hết các hệ thống.
Bruno9779

5

Để có được đường dẫn thực tế có tiền tố (giả sử đó là quan trọng), hãy làm

find "$(pwd)"

Nếu bạn đang sử dụng shell giống như bash, không cần phải gọi lệnh bên ngoài; find "${PWD}"nên là đủ. Không chắc chắn nếu điều đó hoạt động trên QNX, mặc dù.
một CVn

@ MichaelKjorling: Chà nếu bạn muốn đường dẫn symlink chứ không phải đường dẫn thực sự ...
Joshua

Đúng, nó có thể phụ thuộc vào ngữ nghĩa chính xác của từng loại. Đừng quên rằng ít nhất GNU bash cũng được tích hợp sẵn pwdcũng như bên ngoài / bin / pwd, điều này cũng khác nhau về cách chúng xử lý các thư mục đạt được bởi các liên kết tượng trưng.
một CVn
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.