Lấy danh sách tất cả các tệp trong thư mục và thư mục con trong một tệp


28

Làm cách nào để có được danh sách tất cả các tệp trong một thư mục, bao gồm tất cả các tệp trong tất cả các thư mục con và đặt đầu ra vào một tệp?

Câu trả lời:


39

Bạn có thể thực hiện việc này trên dòng lệnh, sử dụng công tắc -R (đệ quy) và sau đó dẫn đầu ra tới một tệp:

ls -R > filename1

điều này sẽ tạo một tệp có tên filename1 trong thư mục hiện tại, chứa danh sách thư mục đầy đủ của thư mục hiện tại và tất cả các thư mục con bên dưới nó.

Bạn có thể liệt kê các thư mục khác với thư mục hiện tại bằng cách chỉ định đường dẫn đầy đủ, ví dụ:

ls -R /var > filename2

sẽ liệt kê mọi thứ trong và dưới / var và đặt kết quả vào một tệp trong thư mục hiện tại có tên là filename2. Điều này hoạt động trên các thư mục thuộc sở hữu của người dùng khác bao gồm root miễn là bạn đã đọc quyền truy cập cho các thư mục.

Bạn cũng có thể liệt kê các thư mục mà bạn không có quyền truy cập như / root bằng cách sử dụng lệnh sudo. ví dụ:

sudo ls -R /root > filename3

Sẽ liệt kê mọi thứ trong / root, đưa kết quả vào một tệp có tên filename3 trong thư mục hiện tại. Vì hầu hết các hệ thống Ubuntu không có gì trong thư mục này, filename3 sẽ không chứa bất cứ thứ gì, nhưng nó sẽ hoạt động nếu có.


Có thể nói với người đó cd vào thư mục trước có thể được thêm vào để trả lời. Ngoài ra, điều này hoạt động tốt nếu tôi sở hữu thư mục nhưng nếu thử trong thư mục nói sở hữu bởi root thì không. Tôi đã nhận được sự cho phép thông thường và sudo theo lệnh của bạn cũng cho phép từ chối. Có một công việc xung quanh mà không cần đăng nhập như root?
damien

Vâng, tôi đã nói thư mục "hiện tại". Việc sử dụng đúng CD có thể là chủ đề của một câu hỏi khác và tôi chắc chắn rằng nó đã được. Bạn có thể liệt kê các thư mục thuộc sở hữu của root miễn là bạn đã đọc quyền truy cập vào chúng. Các thư mục thuộc sở hữu gốc mà người dùng có quyền truy cập đọc có thể được liệt kê với ls -R. Thật khó để tưởng tượng tại sao bạn muốn liệt kê các thư mục được sở hữu bởi root mà bạn không đọc quyền truy cập, nhưng sudo thực sự hoạt động nếu bạn đưa ra đường dẫn đầy đủ. Tôi đang thêm các ví dụ cho cả hai điều này, nhưng không bao gồm việc sử dụng CD.
Fabricator4

8

cây Cài đặt cây

Một thay thế cho đệ quy lslà công cụ dòng lệnh treeđi kèm với khá nhiều tùy chọn để tùy chỉnh định dạng của đầu ra được cấp bằng. Xem trang dành cho cây cho tất cả các tùy chọn.


7

Chỉ cần sử dụng findlệnh với tên thư mục. Ví dụ: để xem các tệp và tất cả các tệp trong các thư mục trong thư mục chính của bạn, hãy sử dụng

find ~

Kiểm tra trang hướng dẫn tìm kiếm cho findlệnhBiểu tượng trang

Đồng thời kiểm tra tìm trang thông tin GNU bằng cách sử dụng info findlệnh trong thiết bị đầu cuối.


Đây là cách tiếp cận mạnh mẽ nhất. findcó nhiều tham số để tùy chỉnh định dạng đầu ra và lựa chọn tập tin.
pauljohn32

Đó là cách tiếp cận tốt nhất theo ý kiến ​​của tôi. Đơn giản và thiết thực. Cũng có thể làm $ find . > outputnếu có nhiều thư mục.
felippe

4

Cũng thế:

gvfs-tree /path/to/folder/

sẽ cung cấp cho bạn giống như cây sử dụng các ký tự khác cho các dòng.

tree -a

cũng hiển thị các tập tin ẩn

tree -i

không hiển thị dòng


1
  1. Chuyển đến thư mục bạn muốn lấy danh sách nội dung.
  2. Chọn các tệp bạn muốn trong danh sách của bạn ( Ctrl+ Anếu bạn muốn toàn bộ thư mục).
  3. Sao chép nội dung bằng Ctrl+ C.
  4. Mở gedit và dán nội dung bằng Ctrl+ V. Nó sẽ được dán dưới dạng một danh sách và sau đó bạn có thể lưu tệp.

Phương pháp này sẽ không bao gồm thư mục con, nội dung mặc dù.


1

Bạn cũng có thể sử dụng bản sao GUI cho treeđề xuất của Takkat, đó là Baobab . Nó được sử dụng để xem các thư mục và thư mục con, thường nhằm mục đích phân tích việc sử dụng đĩa. Bạn có thể đã cài đặt nó nếu bạn đang sử dụng máy tính để bàn Gnome (nó thường được gọi là bộ phân tích sử dụng đĩa).

sudo apt-get install baobab

Bạn có thể chọn một thư mục và cũng có thể xem tất cả các thư mục con của nó, đồng thời lấy kích thước của các thư mục và nội dung của chúng như ảnh chụp màn hình bên dưới hiển thị. Bạn chỉ cần nhấp vào mũi tên xuống nhỏ để xem thư mục con trong thư mục. Nó rất hữu ích để có được cái nhìn sâu sắc nhanh chóng về những gì bạn đã có trong các thư mục của mình và có thể tạo ra các danh sách có thể xem được, nhưng tại thời điểm hiện tại, nó không thể xuất chúng thành tệp. Nó đã được yêu cầu như một tính năng, tuy nhiên, tại Launchpad . Bạn thậm chí có thể sử dụng nó để xem hệ thống tập tin gốc nếu bạn sử dụng gksudo baobab.

(Bạn cũng có thể nhận danh sách các tệp có kích thước của chúng bằng cách sử dụng ls -shR ~/myfoldervà sau đó xuất tệp đó sang tệp.)

Nhập mô tả hình ảnh ở đây


OP muốn các kết quả trong một tệp, có lẽ là để làm một cái gì đó khác với nó. Mặc dù Baobab là một công cụ tốt, nhưng nó dường như không đáp ứng các yêu cầu của câu hỏi ban đầu của OP.
Fabricator4

@ Fabricator4 Tôi cũng đã thêm tùy chọn ls, vì hiện tại baobab không thể đưa ra một danh sách.
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.