Här är några exempel som vi kan dra nytta av när vi använder hitta, ett kommando för att söka efter filer eller mappar.
För att få hjälp för kommandokörningen:
man find
för att avsluta manualen, tryck bara på knappen [Q] (gäller alla manualer).
I följande exempel betyder perioden (.) After find (find.) Betyder att vi tittar i den mapp som anges av prompten. Det kan ersättas med valfri sökväg som / home /.
Exempel:
Sök bara efter filer med ett mönster.
find . -type f -name "*.deb"
hitta och kopiera till / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Hitta Thumbs.db-filerna och ta bort dem.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Skapa en ren textfil med md5-filerna i katalogen.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Ta bort irriterande .svn-mappar.
find | grep "\.svn$" | xargs rm -fr
Ersätt en text med en annan.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Hitta filer uppdaterade för en dag sedan.
find /var/log/[a-z]* \*.sql -mtime +1
Så här genererar du md5sums-filerna i DEB-paketen:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
ta bort alla andra filer än .txt (självklart .txt kan vara vad som helst)
hitta. ! -namn "* .txt" -exec rm {} \;
sök utan skiftlägeskänsliga matchningar:
hitta. -namn «* foobar *»
Anmärkning: Kommandot -exec kan inte köras med parametern -iname.
Utmärkt 😉 det här kommandot borde vara obligatoriskt att veta innan jag var rädd för de alternativ som fanns i 'mannen' för att kunna göra sökningar, men om jag gav det möjlighet kunde jag se hur kraftfull det är när det gäller att hitta det jag glömde på min hårddisk 😐
Sök är verkligen användbart, särskilt för att hantera filnamn som innehåller mellanslag och andra ovanliga tecken. Till exempel kom jag en gång ihåg att det inte fanns något sätt att komprimera en uppsättning kataloger förrän det föll på mig att använda find med xargs (vilket är mycket snabbare än -exec förresten) och problem löst.
En annan av mina föredragna användningsområden för find-kommandot är att rekursivt ändra behörigheter:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Intressant ^ _ ^
Hur cool Chakra-ikonen ser ut hahahahahaha 😀
Mageia saknas 🙂
Japp rätt 😀
Just nu bygger jag på det här hehehehe. Tack 🙂
Och en för min distro ...
Tack, kommandona mycket användbara, jag tvivlar på att jag kommer ihåg att i Ubuntu använde jag en gång lokaliseringskommandot, är det något alias för att hitta eller ...
Negativ. lokalisera, mlocate y sloca är andra sökkommandon som till skillnad från finna, de använder en databas som behöver uppdateras regelbundet med kommandot uppdateradb.
Båda typerna av kommandon har sina användningsområden. Jag använder till exempel vanligtvis uppdateradb följt av mlocatelokalisera när jag verkligen vill hitta något snabbt i en katalog med mycket data som jag vet inte uppdateras för ofta (till exempel ett paket i ett arkiv), och finna när jag vill göra något mer komplicerat som att kombinera sökresultaten med ett annat kommando eller när jag bara inte vill skapa databasen eftersom jag vet att katalogen där jag ska söka inte innehåller för mycket information.
Tack så mycket Hugo, utmärkt förklaring, jag kan bara säga hur kraftfull terminalen är i GNU / Linux!
Hej, jag ser att det här är ett gammalt ämne, men förhoppningsvis kan du fortfarande hjälpa mig.
Jag lär mig att använda regexp eftersom jag såg ett dokument och jag letar efter orden error or fail och deras derivatfel eller failed or failure etc och min regexp är:
: / \ (. * \ (fel | misslyckas \). * \) /
När jag kör det säger det mig att det inte finns några matchningar 🙁 utan till
:/\(.*\(fel\).*\)/
o
: / \ (. * \ (misslyckas \). * \) /
Om du hittar matchningar, kan du berätta för mig hur jag har fel?
Vad är hela linjen du sätter?
För att testa och se om jag hittar lösningen.
Å andra sidan, hur som helst om du vill kan du kolla här: https://blog.desdelinux.net/?s=expresiones+regulares
Snälla hjälp mig, jag vill kopiera filerna som slutar på * _ZFIR0069.TXT till en annan sökväg och lägga till ett datum i slutet, jag gör ett kommando:
datum = $ (datum + »% Y% m% d%»)
hitta / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;
Men resultatet är:
{} _20160225% -> men den kopierar bara en fil av alla och den döps om på det sättet
Vad jag vill är att den kopierar alla filer och har det här formatet * _ZFIR0069_ $ datum .TXT
Hälsningar.
Vad är skillnaden mellan hitta * -typ d och hitta / hem / pepe -typ d? Jag vill lista katalogerna för mitt konto och jag förstår inte varför den första gör det korrekt och den andra inte. hjälp till
Hur kan jag hitta filer som slutar i siffror? Tack