GNU/Linux >> Znalost Linux >  >> Linux

Jak v Linuxu zobrazím seznam souborů s úplnými cestami?

Použijte find příkaz. Ve výchozím nastavení bude rekurzivně vypisovat všechny soubory a složky sestupně z vašeho aktuálního adresáře s úplnou (relativní) cestou.

Pokud chcete úplnou cestu, použijte:find "$(pwd)" .

  • Pokud jej chcete omezit pouze na soubory nebo složky, použijte find -type f nebo find -type d , respektive.
  • Pokud chcete, aby se zastavil v určité hloubce adresáře, použijte find -maxdepth 2 , například.

Přečtěte si Finding Files pro obsáhlý manuál ke GNU find , což je výchozí nastavení v systému Linux.


$ pwd
/home/victoria

$ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort
/home/victoria/new
/home/victoria/new1
/home/victoria/new2
/home/victoria/new3
/home/victoria/new3.md
/home/victoria/new.md
/home/victoria/package.json
/home/victoria/Untitled Document 1
/home/victoria/Untitled Document 2

$ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort
new
new1
new2
new3
new3.md
new.md
package.json
Untitled Document 1
Untitled Document 2

Poznámky:

  • . :aktuální složka
  • odebrat -maxdepth 1 rekurzivně vyhledávat
  • -type f :najít soubory, nikoli adresáře (d )
  • -not -path '*/\.*' :nevrací .hidden_files
  • sed 's/^\.\///g' :odstraňte předponu ./ z výsledkové listiny

Pro úplnost ls -lR / příkaz vypíše název každého souboru, typ souboru, bity režimu souboru, počet pevných odkazů, jméno vlastníka, název skupiny, velikost a časové razítko každého souboru (k němuž máte oprávnění k přístupu) z kořenového adresáře dolů. (l je pro dlouhý seznam, tj. všechny tyto informace, R je rekurzovat přes adresáře, / začíná v kořenovém adresáři souborového systému.)

Existuje řada parametrů, které přiblíží výstupní informace dir /S /A , ale musím přiznat, že nemůžu přijít na to, jak přeložit /B .

Pro užitečné informace bych zkusil:ls -lAFGR --si /

kde

  • l =dlouhý seznam (jak je uvedeno výše)
  • A =téměř všechny soubory (nezahrnuje . a .. v každém adresáři, ale zobrazuje všechny skryté soubory)
  • F =zobrazit indikátor souboru, (jeden z * pro soubory exe / pro adresáře @ pro symbolické odkazy | pro FIFO = pro zásuvky a > fordoors)
  • G =nezobrazovat informace o skupině (pokud je chcete vidět, odstraňte je)
  • R =rekurzivně vypisuje adresáře (podadresáře) a
  • --si =zobrazit velikost souboru ve formátu čitelném pro člověka, např. 1M formátu (kde 1M =1000B)

ls může poskytnout snazší přehled adresářů a souborů v těchto adresářích, jako find Výstup 's může být obtížné skenovat, pokud jsou soubory obsaženy ve skutečně dlouhých adresářových strukturách (zabírajících více řádků). Důsledkem je, že každý soubor je uveden samostatně (tj. bez informací o cestě k adresáři) a možná budete muset vrátit několik stránek/obrazovek zpět, abyste našli adresáře, ve kterých se konkrétní soubor nachází.

Find také neobsahuje informace /A v příkazu DIR. V příkazu, který jsem ukázal, jsem navrhl řadu atributů (které shodou okolností ukazují extra užitečnost, kterou získáte z linuxu přes určitý proprietární systém), ale pokud si přečtete man a info stránky na ls , budete moci vidět, co zahrnout nebo ne.


Linux
  1. Jak mohu v Linuxu vygenerovat seznam souborů s jejich absolutní cestou?

  2. Jak najít soubory ve formátu DOS v systému souborů linux

  3. Jak najít všechny soubory končící na .rb s Linuxem?

  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Iterujte seznam souborů s mezerami

  3. Jak vypsat všechny soubory oddílu na linuxu?

  1. Jak najít soubory s oprávněními SUID a SGID v Linuxu

  2. Jak najít soubor v Linuxu

  3. Jak najít soubory pomocí příkazu fd v Linuxu