Găsirea fișierelor în Linux poate părea descurajantă pentru începători, mai ales atunci când aveți de-a face cu mii de fișiere din mai multe directoare. Acest ghid vă va ghida prin cele mai eficiente metode de căutare a fișierelor în Linux, făcând gestionarea fișierelor o ușoară.
Linux oferă două instrumente principale pentru găsirea fișierelor:
- localiza: Un instrument de căutare rapid, bazat pe baze de date
- găsi: Un utilitar de căutare puternic, bogat în funcții
Comanda locate: Căutări rapide și ușoare
The locate comanda oferă o modalitate simplă de a găsi fișiere după nume. Căută într-o bază de date pre-construită de căi de fișiere, făcându-l incredibil de rapid.
# Basic syntax locate filename # Example: Finding zip-related files locate zip | grep bin
Iată un eșantion de ieșire de la terminalul meu:
steve@server:~$ locate zip | grep bin /bin/bunzip2 /bin/bzip2 /bin/bzip2recover /bin/gunzip /bin/gzip /lib/firmware/qed/qed_init_values_zipped-8.10.10.0.bin /lib/firmware/qed/qed_init_values_zipped-8.10.5.0.bin /lib/firmware/qed/qed_init_values_zipped-8.15.3.0.bin /lib/firmware/qed/qed_init_values_zipped-8.20.0.0.bin /lib/firmware/qed/qed_init_values_zipped-8.33.1.0.bin /lib/firmware/qed/qed_init_values_zipped-8.37.2.0.bin /lib/firmware/qed/qed_init_values_zipped-8.37.7.0.bin /lib/firmware/qed/qed_init_values_zipped-8.4.2.0.bin /lib/firmware/qed/qed_init_values_zipped-8.7.3.0.bin ...
Sfat pro: Baza de date de localizare este actualizată zilnic. Dacă trebuie să căutați fișiere create recent, rulați sudo updatedb pentru a actualiza manual baza de date.
The find comanda este mai puternică, dar necesită o sintaxă mai detaliată. Căută în directoare în timp real, oferind control precis asupra criteriilor de căutare.
Sintaxa de bază a comenzii find
find /path/to/search -type f -name "filename"
Criterii comune de căutare
1. Căutați după tip de fișier
# Find directories find ~ -type d # Find regular files find ~ -type f
Exemplu de ieșire de la terminalul meu:
steve@server:~$ find ~ -type d /home/steve /home/steve/.local /home/steve/.local/share /home/steve/.local/share/nano /home/steve/.config /home/steve/.config/htop /home/steve/docker /home/steve/.cache /home/steve/.cache/update-manager-core /home/steve/sandbox /home/steve/.gnupg /home/steve/.gnupg/private-keys-v1.d /home/steve/snap /home/steve/snap/docker /home/steve/.ssh
2. Căutați după dimensiunea fișierului
# Find files larger than 1MB find ~ -type f -size +1M # Find files smaller than 100KB find ~ -type f -size -100k
Exemplu de ieșire de la terminalul meu:
steve@server:~$ find ~ -type f -size -100k /home/steve/.smbcredentials /home/steve/? /home/steve/.sudo_as_admin_successful /home/steve/.config/htop/htoprc /home/steve/jcameron-key.asc /home/steve/pat_backup.tag.bz /home/steve/.viminfo /home/steve/ls.txt /home/steve/.bashrc /home/steve/docker/docker-compose.yml.save /home/steve/docker/docker-compose.yml /home/steve/pat_backup.tar.bz /home/steve/.bash_logout /home/steve/.cache/motd.legal-displayed /home/steve/.cache/update-manager-core/meta-release-lts /home/steve/sandbox/test_file.txt /home/steve/.bash_history /home/steve/.ssh/authorized_keys /home/steve/.ssh/known_hosts /home/steve/.profile
3. Căutați după permisiuni
# Find files with specific permissions find ~ -type f -perm 0644
Exemplu de ieșire de la terminalul meu:
steve@server:~$ find ~ -type f -perm 0644 /home/steve/? /home/steve/.sudo_as_admin_successful /home/steve/.bashrc /home/steve/pat_backup.tar.bz /home/steve/.bash_logout /home/steve/.cache/motd.legal-displayed /home/steve/.profile
Încercați acest exercițiu practic:
Problemă: Găsiți-le pe toate .txt fișiere din directorul dvs. de acasă care au mai mult de 1 MB și au fost modificate în ultimele 24 de ore.
Încercați să scrieți comanda înainte de a căuta soluția de mai jos.
Click aici pentru solutie!
Soluţie:
find ~ -type f -name "*.txt" -size +1M -mtime -1
Combinarea criteriilor de căutare
Utilizați operatori logici pentru a crea căutări complexe:
find ~ ( -type f -not -perm 0600 ) -or ( -type d -not -perm 0700 )
Executarea comenzilor pe fișierele găsite
# List details of found files
find ~ -type f -name "*.jpg" -exec ls -l {} ;
# Delete found files (use with caution!)
find ~ -type f -name "*.tmp" -delete
- Utilizare
locatepentru căutări rapide de nume de fișiere - Utilizare
findpentru căutări detaliate, bazate pe criterii - Nu uitați să actualizați baza de date de localizare cu
sudo updatedb - Combinați criteriile de căutare pentru rezultate precise
- Utilizare
-execpentru a efectua acțiuni asupra fișierelor găsite
-
Î: De ce nu pot găsi fișiere create recent cu locate? R: Baza de date de localizare este actualizată periodic. Fugi
sudo updatedbpentru a-l actualiza manual. -
Î: Cum pot căuta fișiere după conținut? A: Combină
findcugrep:find . -type f -exec grep "search text" {} ; -
Î: Pot căuta fișiere după dată? A: Da, folosește
-mtime(timp de modificare) sau-ctime(schimbați ora) opțiuni cufind. -
Î: Cum manipulez numele fișierelor cu spații? R: Folosiți ghilimele în jurul numelor de fișiere sau folosiți
-print0opțiunea cufind. -
Î: Există o alternativă GUI la aceste comenzi? R: Da, majoritatea distribuțiilor Linux includ instrumente de căutare grafică, dar instrumentele din linia de comandă oferă mai multă putere și flexibilitate.
Stăpânirea căutării fișierelor în Linux este esențială pentru un management eficient al sistemului. în timp ce locate oferă rezultate rapide pentru căutări simple, find oferă opțiuni puternice pentru cerințe complexe de căutare. Exersați aceste comenzi în mod regulat pentru a deveni priceput în gestionarea fișierelor Linux.
Ne-ar plăcea să aflăm despre experiențele dvs. cu căutarea fișierelor Linux! Împărtășiți-vă sfaturile și trucurile în comentariile de mai jos sau urmăriți-ne pe rețelele sociale pentru mai multe tutoriale Linux.
