Fișiere și directoare
Operațiile pe fișiere și directoare — copiere, mutare, ștergere, căutare — sunt pâinea zilnică. O regulă domină toată lecția: `rm` nu are coș de gunoi. Ce ștergi, dispare. De aceea verifici de două ori orice comandă distructivă.
Creare, copiere, mutare
mkdir proiect # un director
mkdir -p a/b/c # și directoarele intermediare
touch fisier.txt # fișier gol
cp sursa.txt dest.txt # copiere
cp -r folder1 folder2 # recursiv (directoare)
mv vechi.txt nou.txt # redenumire sau mutare
mv fisier.txt ~/documente/Ștergere (cu grijă)
rm fisier.txt # șterge un fișier — DEFINITIV
rm -r folder # șterge un director și tot ce conține
rm -i *.log # cere confirmare pentru fiecare
# NICIODATĂ rm -rf pe o cale de care nu ești 100% sigurVizualizare conținut
cat fisier.txt # tot
less fisier.txt # paginat (navigare, /căutare, q ieșire)
head -n 20 fisier # primele 20 de rânduri
tail -n 50 fisier # ultimele 50
tail -f log.txt # urmărește ce se adaugă, liveCăutare
find . -name "*.php" # fișiere după nume
find /var/log -mtime -1 # modificate în ultima zi
grep "eroare" storage/logs/*.log # text în fișiere
grep -rn "TODO" src/ # recursiv, cu numărul linieiCurățenie sigură într-un folder de log-uri
cd /var/log/aplicatie ls -lah # vezi ce e și cât ocupă find . -name "*.log" -mtime +30 # întâi LISTEAZĂ ce ai șterge find . -name "*.log" -mtime +30 -delete # abia apoi șterge
Exercițiu
Creează un director de test cu câteva fișiere. Copiază unul, redenumește altul, mută unul într-un subdirector. Folosește `find` ca să listezi doar fișierele `.txt`, apoi `grep` ca să găsești un cuvânt în ele. NU exersa `rm -rf`.
Greșeli frecvente
- `rm -rf` pe o cale greșită (mai ales cu variabile: `rm -rf $DIR/` când `$DIR` e gol → `rm -rf /`).
- Nu listezi întâi ce ar șterge un `find ... -delete`.
- Folosești `cat` pe un fișier de 2 GB în loc de `less` sau `tail`.
- Cauți cu `find` fără `-name` și primești tot.
De reținut
- mkdir -p, cp -r, mv, touch pentru operații de bază.
- rm e definitiv; `-i` cere confirmare, verifică mereu calea.
- less / head / tail pentru fișiere mari; `tail -f` pentru log-uri live.
- find pentru fișiere, grep pentru conținut; listează înainte să ștergi.
Pe scurt
Operațiile pe fișiere sunt simple, dar `rm` nu iartă. Listează înainte de a șterge, folosește Tab, și tratează căile cu variabile cu suspiciune.