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
locate
pentru căutări rapide de nume de fișiere - Utilizare
find
pentru 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
-exec
pentru 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 updatedb
pentru a-l actualiza manual. -
Î: Cum pot căuta fișiere după conținut? A: Combină
find
cugrep
: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
-print0
opț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.