11 způsobů, jak vypsat a třídit soubory na Linuxu

existuje mnoho způsobů, jak vypsat soubory a zobrazit informace o nich v systémech Linux. Tento příspěvek hodnotí řadu příkazů, které poskytují podrobnosti o souborech, a poskytuje možnosti přizpůsobení výpisů souborů podle vašich potřeb.

většina příkazů uvádí soubory v jednotlivých adresářích, zatímco jiné sahají tak hluboko do systému souborů, jak se chcete podívat.

primárním příkazem pro výpis souborů je samozřejmě ls. Tento příkaz má však velké množství možností pro nalezení a výpis pouze souborů, které chcete vidět. Navíc je vždy najít pomoc s velmi specifickým vyhledáváním souborů.

výpis souborů podle názvu

nejjednodušší způsob, jak vypsat soubory podle názvu, je jednoduše je vypsat pomocí příkazu ls. Výpis souborů podle názvu (alfanumerické pořadí) je koneckonců výchozí. Můžete si vybrat ls (žádné podrobnosti) nebo ls-l (spousta detailů) určit svůj názor.

$ ls | head -68pgs.pdfAesthetics_Thank_You.pdfalien.pdfAnnual_Meeting_Agenda-20190602.pdfbigfile.bz2bin$ ls -l | head -6-rw-rw-r-- 1 shs shs 10886 Mar 22 2019 8pgs.pdf-rw-rw-r-- 1 shs shs 284003 May 11 2019 Aesthetics_Thank_You.pdf-rw-rw-r-- 1 shs shs 38282 Jan 24 2019 alien.pdf-rw-rw-r-- 1 shs shs 97358 May 19 2019 Annual_Meeting_20190602.pdf-rw-rw-r-- 1 shs shs 18115234 Apr 16 17:36 bigfile.bz2drwxrwxr-x 4 shs shs 8052736 Jul 10 13:17 bin

Pipe výstup ls na příkaz more, pokud chcete zkontrolovat svůj výpis obrazovky najednou.

výpis souborů v obráceném pořadí názvů

Chcete-li změnit seznam souborů podle názvu, přidejte volbu-r (reverzní). Bude to jako obrátit normální výpis vzhůru nohama.

$ ls -r$ ls -lr

Seznam souborů podle přípony souboru

příkazu ls není analyzovat typy souborů podle obsahu, ale pracuje s názvy souborů. Existuje však možnost příkazu, která může seznam souborů podle přípony. Pokud přidáte volbu-X, ls bude třídit soubory podle názvu v každé kategorii rozšíření. Například, to bude seznam souborů bez rozšíření nejprve (v alfanumerickém pořadí) následuje soubory s příponami jako .1,. bz2, .c a tak dále.

výpis pouze adresářů

ve výchozím nastavení příkaz ls zobrazí soubory i adresáře. Pokud chcete vypsat pouze adresáře, můžete použít volbu-d. Zobrazí se výpis, jako je tento:

$ ls -d */1/ backups/ modules/ projects/ templates/2/ html/ patches/ public/ videos/bin/ new/ private/ save/

výpis souborů podle velikosti

Chcete-li zobrazit soubory v pořadí velikostí, přidejte volbu-S. Všimněte si však, že vám to ve skutečnosti nezobrazí velikosti (spolu s dalšími podrobnostmi o souboru), pokud také nepřidáte možnost-l (dlouhý seznam). Při výpisu souborů podle velikosti je obecně užitečné vidět, že příkaz dělá to, co jste požádali. Všimněte si, že výchozí je nejprve zobrazit největší soubory. LS-lSr).

$ ls -lStotal 959492-rw-rw-r-- 1 shs shs 357679381 Sep 19 2019 sav-linux-free-9.tgz-rw-rw-r-- 1 shs shs 103270400 Apr 16 17:38 bigfile-rw-rw-r-- 1 shs shs 79117862 Oct 5 2019 Nessus-8.7.1-ubuntu1110_amd64.deb

výpis souborů podle vlastníka

Pokud chcete vypsat soubory podle vlastníka (např., ve sdíleném adresáři), můžete předat výstup příkazu ls třídit a vybrat sloupec vlastníka přidáním -k3 třídit na třetím poli.

$ ls -l | sort -k3 | moretotal 56-rw-rw-r-- 1 dory shs 0 Aug 23 12:27 tasklistdrwx------ 2 gdm gdm 4096 Aug 21 17:12 tracker-extract-files.121srwxr-xr-x 1 root root 0 Aug 21 17:12 ntf_listenerc0c6b8b4567drwxr-xr-x 2 root root 4096 Aug 21 17:12 hsperfdata_root
^
|

ve skutečnosti můžete třídit na libovolném poli tímto způsobem (např. rok). Jen buďte opatrní, abyste přidali „n“ – – k5n-pokud třídíte na poli, které je číselné, nebo budete třídit v alfanumerickém pořadí. Tato technika třídění je užitečná také pro třídění obsahu souborů, nejen pro výpis souborů.

výpis souborů podle věku

použijte volbu-t pro seznam souborů v pořadí podle věku-jak nové jsou. Přidejte možnost-r, aby se naposledy aktualizované soubory zobrazovaly jako poslední v seznamu. Používám tento alias, aby mi ukázal seznam souborů, které jsem naposledy aktualizoval:

$ alias recent='ls -ltr | tail -8'

Všimněte si, že časy změn a úprav souborů jsou různé. Volby-c (change) a-t (modification) nebudou vždy dávat stejné výsledky. Pokud změníte oprávnění k souboru a nic jiného, bude-c dát, že soubory v horní části výstupu ls, zatímco-t nebude. Pokud jste zvědaví na rozdíl, podívejte se na výstup příkazu stat.

$ stat ckacct File: ckacct Size: 200 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 829041 Links: 1Access: (0750/-rwxr-x---) Uid: ( 1000/ shs) Gid: ( 1000/ shs)Access: 2020-08-20 16:10:11.063015008 -0400Modify: 2020-08-17 07:26:34.579922297 -0400 <== content changesChange: 2020-08-24 09:36:51.699775940 -0400 <== content or permissions changes Birth: -

Seznam souborů podle skupiny

seřadit soubory podle souvisejících skupin, můžete předat výstup z dlouhé výpis příkazu sort a říct to nějak na sloupci 4.

$ ls -l | sort -k4

výpis souborů podle data přístupu

Chcete-li zobrazit soubory podle data přístupu (Naposledy poprvé), použijte volby-ltu. „U“ vynucuje příkaz k zápisu „podle data přístupu“.

$ ls -ltutotal 959500-rwxr-x--- 1 shs shs 200 Aug 24 09:42 ckacct <== most recently used-rw-rw-r-- 1 shs shs 1335 Aug 23 17:45 lte

výpis více souborů na jednom řádku

někdy je pro daný úkol vhodnější kondenzovaný seznam souborů. Příkaz ls má dokonce možnosti. Chcete-li vypsat soubory na co nejméně řádcích, můžete použít –format=comma k oddělení názvů souborů čárkami jako v tomto příkazu:

$ ls --format=comma1, 10, 11, 12, 124, 13, 14, 15, 16pgs-landscape.pdf, 16pgs.pdf, 17, 18, 19,192.168.0.4, 2, 20, 2018-12-23_OoS_2.pdf, 2018-12-23_OoS.pdf, 20190512_OoS.pdf,'2019_HOHO_application working.pdf' …

preferujete bílé místo? Místo toho použijte –format = across.

$ ls --format=across z*z zip zipfiles zipfiles1.bat zipfiles2.batzipfiles3.bat zipfiles4.bat zipfiles.bat zoom_amd64.deb zoomap.pdfzoom-mtg

Přidání hloubky, aby vaše vyhledávání

Zatímco je obecně seznamy souborů v jediném adresáři, můžete si vybrat místo toho, aby se rekurzivně seznam souborů pomocí -R možnosti, ponoří se do celé hloubky adresářů:

$ ls -R zzzzz | grep -v "^$"zzzzz:zzzzzzzzz/zzzz:zzzzzzzz/zzzz/zzz:zzzzzzz/zzzz/zzz/zz:zzzzzz/zzzz/zzz/zz/z:sleeping

Alternativně můžete použít příkaz Najít s omezenou nebo neomezenou specifikací hloubky. V tomto příkazu můžeme poučit, najít příkazu hledat pouze ve třech úrovních adresářů:

$ find zzzzz -maxdepth 3zzzzzzzzzz/zzzzzzzzz/zzzz/zzzzzzzz/zzzz/zzz/zz

Výběr ls vs najít

Když potřebujete, aby se seznam souborů, které splňují velmi selektivní seznam požadavků, příkaz najít je pravděpodobně lepší nástroj, než je.

Na rozdíl od ls vypadá příkaz find co nejhlouběji, pokud jej neomezíte. Má také mnoho dalších možností a příkaz-exec, který vám umožní provést nějakou konkrétní akci, jakmile najdete soubory, které hledáte.

Wrap-Up

příkaz ls má mnoho možností pro výpis souborů. Podívejte se na ně. Možná najdete nějaké, které se vám budou líbit.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *