GNU/Linux >> Znalost Linux >  >> Linux

Najděte všechny soubory s názvem obsahujícím řetězec

-maxdepth možnost by měla být před -name možnost, jako níže.,

find . -maxdepth 1 -name "string" -print

Použijte find :

find . -maxdepth 1 -name "*string*" -print

Najde všechny soubory v aktuálním adresáři (smažte maxdepth 1 pokud chcete, aby byl rekurzivní) obsahující „řetězec“ a vytiskne jej na obrazovku.

Pokud se chcete vyhnout souboru obsahujícímu ':', můžete napsat:

find . -maxdepth 1 -name "*string*" ! -name "*:*" -print

Pokud chcete použít grep (ale myslím, že to není nutné, pokud nechcete kontrolovat obsah souboru), můžete použít:

ls | grep touch

Ale opakuji, find je lepší a čistší řešení pro váš úkol.


Použijte grep následovně:

grep -R "touch" .

-R znamená opakování. Pokud nechcete jít do podadresářů, přeskočte to.

-i znamená "ignorovat velikost písmen". Možná zjistíte, že to také stojí za vyzkoušení.


find $HOME -name "hello.c" -print

Tím se prohledá celých $HOME (tj. /home/username/ ) systém pro všechny soubory s názvem „hello.c“ a zobrazit jejich názvy:

/Users/user/Downloads/hello.c
/Users/user/hello.c

Neodpovídá však HELLO.C nebo HellO.C . Aby se shodovaly, nerozlišují se malá a velká písmena, předejte -iname možnost takto:

find $HOME -iname "hello.c" -print

Ukázkové výstupy:

/Users/user/Downloads/hello.c
/Users/user/Downloads/Y/Hello.C
/Users/user/Downloads/Z/HELLO.c
/Users/user/hello.c

Předejte -type f možnost vyhledávat pouze soubory:

find /dir/to/search -type f -iname "fooBar.conf.sample" -print
find $HOME -type f -iname "fooBar.conf.sample" -print

-iname funguje buď na příkazu hledání verze GNU nebo BSD (včetně OS X). Pokud vaše verze příkazu find nepodporuje -iname , zkuste následující syntaxi pomocí grep příkaz:

find $HOME | grep -i "hello.c"
find $HOME -name "*" -print | grep -i "hello.c"

NEBO zkuste

find $HOME -name '[hH][eE][lL][lL][oO].[cC]' -print

Ukázkové výstupy:

/Users/user/Downloads/Z/HELLO.C
/Users/user/Downloads/Z/HEllO.c
/Users/user/Downloads/hello.c
/Users/user/hello.c

Linux
  1. Smazat všechny soubory kromě určitého podadresáře pomocí funkce Najít?

  2. Jak najít všechny soubory, které neobsahují textový řetězec?

  3. Jak najít všechny soubory/složky s oprávněním 777 v Linuxu?

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

  2. Jak najít všechny soubory s konkrétním nadřazeným adresářem v linuxu?

  3. Najděte v systému Linux soubory s nelegálními znaky systému Windows v názvu

  1. Centos – Přejmenovat všechny soubory s určitým názvem?

  2. Počet souborů obsahujících daný řetězec?

  3. Najděte adresáře obsahující určitý počet souborů