GNU/Linux >> Znalost Linux >  >> Linux

příkaz find výchozí pořadí řazení

Řešení 1:

find bude procházet strom adresářů v pořadí položky jsou uloženy v položkách adresáře. To bude (většinou) konzistentní při každém spuštění na stejném počítači a bude to v podstatě „pořadí vytváření souborů/adresářů“, pokud nedošlo k žádnému mazání.

Některé systémy souborů však změní pořadí položek adresáře jako součást operací komprimace nebo když je třeba zvětšit velikost položky, takže vždy existuje malá šance, že se „surové“ pořadí časem změní. Pokud chcete konzistentní pořadí, proveďte výstup přes další stupeň třídění.

Řešení 2:

Neměli byste se spoléhat na konkrétní výstupní pořadí z find a místo toho by měl používat sort a další prostředky ke konkrétní kontrole objednávky.

Řešení 3:

V UNIXu/Linuxu pracuji od roku 1984/1991 a první příkaz, který jsem se naučil, byl find. Linux/GNU vložil téměř vše, co potřebujete, do aktuálního příkazu find, takže si s tím pohrajte.

Zde je několik užitečných tipů pro třídění výstupu hledání. Volba -printf vám poskytuje spoustu možností, jak povolit složitější třídění a prezentaci informací o souborech. Na takové problémy je nejlepší. Pohrajte si s tím, abyste viděli, co bude pro vás fungovat. Pomocí -printf můžete přizpůsobit a ohraničit výsledky tak, jak chcete. To docela pomáhá, když potřebujete zpracovat výsledky. Doufám, že to někomu pomůže.

  1. Pokud používáte -ls a chcete třídit podle názvu souboru, 11. pole je název souboru, takže můžete provést následující. Volba sort -k může také obsahovat více polí pro řazení.

    najít /cesta -ls | řazení -k11

  2. Pokud chcete jemnější kontrolu zrnitosti, tj. řazení podle data/času ve vzestupném nebo sestupném pořadí, použijte volbu -printf "". Další podrobnosti naleznete v příručce, ale následující je příklad, který bude tisknout ve zlomcích sekund, takže je velmi přesný.

PŘÍKLAD DATUM/ČAS:2016-09-17+12:09:57.9013929800

find /path -printf "%T+ %p\n" | sort -n # Ascending

find /path -printf "%T+ %p\n" | sort -nr # Descending

Dalším způsobem, jak to provést bez znaků v řetězci datum/čas, je.

PŘÍKLAD DATUM/ČAS:20160917120013.8101685040

find /path -printf "%AY%Am%Ad%AH%AM%AS %p\n" | sort -n

Linux
  1. sort Příklady příkazů v Linuxu

  2. sort:příkaz nenalezen

  3. Řazení v bash

  1. Jak integrovat příkaz MV po příkazu Najít?

  2. Jaké je výchozí pořadí řazení Linuxu?

  3. příkaz najít z PID

  1. Najít největší soubory nebo adresáře?

  2. Jak najít výchozí IP bránu v Linuxu

  3. najdete příklady příkazů v Linuxu