Puncte:2

cum să eliminați recursiv fișiere dintr-un folder dacă numele acestuia nu apare într-un alt folder

drapel in

Am două foldere în care unul conține fișiere txt și celălalt fișiere .jpg cu numele exact. Cu toate acestea, fișierele txt sunt mult mai mult decât fișierele jpg.

folder_1/00.txt
folder_1/01.txt 
folder_1/02.txt 
folder_1/03.txt 
folder_1/04.txt   

folder_2/00.jpg
folder_2/01.jpg 
folder_2/02.jpg 

Aici, trebuie să elimin 03.txt și 04.txt deoarece aceste nume nu apar în folder_2

Puncte:3
drapel cn

Iată o modalitate:

$ pentru fișierul din folder_1/*.jpg; do 
    fileName="${file##*/}"
    [[ -e folder_2/${fileName/.txt/.jpg} ]] || echo rm -- "$fișier"
Terminat
rm -- folder_1/03.txt
rm -- folder_1/04.txt

The pentru bucla repetă peste toate fișierele și directoarele care nu sunt ascunse în folder_1 al cărui nume se termină în .jpg, salvând fiecare ca $file. Următorul, fileName="${file##*/}" setează variabila $fileName la valoarea de $file cu totul până la ultimul / eliminat, ceea ce înseamnă că va fi numele fișierului fără director. In fine, cu [[ -e folder_2/${fileName/.txt/.jpg} ]] || echo rm -- $fișier, verificăm dacă există un fișier în folder_2 cu acelasi nume dar a .TXT extensie și, dacă nu, echo rm -- "$fișier". Dacă acest lucru face ceea ce doriți, eliminați ecou și rulați din nou pentru a șterge efectiv fișierele:

pentru fișierul din folder_1/*.jpg; do 
    fileName="${file##*/}"
    [[ -e folder_2/${fileName/.txt/.jpg} ]] || rm -- "$fișier"
Terminat

The -- în rm -- "$fișier" nu este necesar aici, dar este un bun obicei de a avea: se asigură că orice după -- nu este analizat ca o opțiune pentru rm, permițând astfel comenzii să funcționeze și pe nume de fișiere care încep cu un -.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.