Uzyskaj listę wszystkich plików w folderze i podfolderze w pliku


28

Jak uzyskać listę wszystkich plików w folderze, w tym wszystkie pliki we wszystkich podfolderach i umieścić dane wyjściowe w pliku?

Odpowiedzi:


39

Możesz to zrobić w wierszu poleceń, używając przełącznika -R (rekurencyjnego), a następnie przesyłając dane wyjściowe do pliku w ten sposób:

ls -R > filename1

spowoduje to utworzenie pliku o nazwie nazwa_pliku1 w bieżącym katalogu, zawierającego pełną listę katalogów bieżącego katalogu i wszystkich podkatalogów w nim zawartych.

Możesz wyświetlić katalogi inne niż bieżący, określając pełną ścieżkę, np .:

ls -R /var > filename2

wypisze wszystko w / pod / var i umieści wyniki w pliku w bieżącym katalogu o nazwie filename2. Działa to na katalogach należących do innego użytkownika, w tym na root, pod warunkiem, że masz dostęp do odczytu dla katalogów.

Za pomocą polecenia sudo możesz także wyświetlić katalogi, do których nie masz dostępu, takie jak / root. na przykład:

sudo ls -R /root > filename3

Wypisuje wszystko w katalogu / root, umieszczając wyniki w pliku o nazwie filename3 w bieżącym katalogu. Ponieważ większość systemów Ubuntu nie ma nic w tym katalogu nazwa_pliku3 nie będzie zawierała niczego, ale zadziałałoby, gdyby tak było.


Być może można by dodać osobę, która najpierw poleci cd do katalogu, aby odpowiedzieć. Również to działa dobrze, jeśli jestem właścicielem katalogu, ale jeśli próbuję w katalogu, powiedz, że należy do roota, to nie zadziałało. Otrzymałem zwykłe pozwolenie, a sudo wydało polecenie również odmówiono zgody. Czy istnieje obejście bez logowania się jako root?
damien

Powiedziałem „bieżący” katalog. Prawidłowe użycie CD może być przedmiotem innego pytania i jestem tego pewien. Możesz wyświetlać katalogi będące własnością root, o ile masz do nich dostęp do odczytu. Katalogi należące do katalogu głównego, do których użytkownik ma dostęp do odczytu, można wyświetlić za pomocą ls -R. Trudno sobie wyobrazić, dlaczego chcesz wymienić katalogi będące własnością roota, do których nie masz dostępu do odczytu, ale sudo naprawdę działa, jeśli podasz pełną ścieżkę. Dodaję przykłady dla obu z nich, ale wyłączając użycie CD.
fabricator4

8

drzewo Zainstaluj drzewo

Alternatywą dla lsmetody rekurencyjnej jest narzędzie wiersza polecenia, treektóre oferuje całkiem sporo opcji dostosowywania formatu wyświetlanego wyniku. Zobacz stronę podręcznika dla drzewa dla wszystkich opcji.


7

Wystarczy użyć findpolecenia z nazwą katalogu. Na przykład, aby zobaczyć pliki i wszystkie pliki w folderach w katalogu domowym, użyj

find ~

Sprawdź find ręcznego manpage dla findkomendyIkona strony

Sprawdź także stronę informacyjną GNU za pomocą info findpolecenia w terminalu.


To najsilniejsze podejście. findma wiele parametrów do dostosowania formatu wyjściowego i wyboru pliku.
pauljohn32

To moim zdaniem najlepsze podejście. Prosty i praktyczny. Można to również zrobić, $ find . > outputjeśli istnieje wiele katalogów.
felippe

4

Również:

gvfs-tree /path/to/folder/

da ci to samo co drzewo, używając innych znaków dla linii.

tree -a

aby wyświetlić również ukryte pliki

tree -i

nie wyświetlać linii


1
  1. Przejdź do folderu, z którego chcesz uzyskać listę treści.
  2. Wybierz pliki, które chcesz z listy ( Ctrl+ Ajeśli chcesz cały folder).
  3. Skopiuj zawartość za pomocą Ctrl+ C.
  4. Otwórz gedit i wklej zawartość za pomocą Ctrl+ V. Zostanie wklejony jako lista, a następnie możesz zapisać plik.

Ta metoda nie będzie jednak zawierać podfolderów, ale treść.


1

Możesz także użyć odpowiednika GUI do treesugestii Takkata, którą jest Baobab . Służy do przeglądania folderów i podfolderów, często w celu analizy użycia dysku. Być może masz już zainstalowany, jeśli korzystasz z pulpitu GNOME (często nazywa się to analizatorem użycia dysku).

sudo apt-get install baobab

Możesz wybrać folder, a także wyświetlić wszystkie jego podfoldery, a także uzyskać rozmiary folderów i ich zawartości, jak pokazano na zrzucie ekranu poniżej. Wystarczy kliknąć małą strzałkę w dół, aby wyświetlić podfolder w folderze. Jest to bardzo przydatne, aby uzyskać szybki wgląd w to, co masz w folderach i może tworzyć widoczne listy, ale w tej chwili nie można ich wyeksportować do pliku. Zostało to jednak wymagane w Launchpad . Możesz nawet użyć go do przeglądania głównego systemu plików, jeśli go używasz gksudo baobab.

(Możesz również uzyskać listę plików o ich rozmiarach, używając, ls -shR ~/myfoldera następnie wyeksportuj ją do pliku.)

Wpisz opis zdjęcia tutaj


OP chciał wyniki w pliku, prawdopodobnie aby zrobić z nim coś innego. Chociaż Baobab jest dobrym narzędziem, wydaje się, że nie spełnia wymogów pierwotnego pytania PO.
fabricator4

@ fabricator4 Dodałem także opcję ls, ponieważ baobab nie może obecnie wypisać listy.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.