Puncte:1

Orice pachet Linux care mă ajută să mă ocup de spațiile și parantezele din numele fișierelor

drapel in

Am un server de fișiere de rezervă ubuntu. Fac copii de rezervă ale fișierelor CAD care sunt utilizate pe un sistem Windows. Inutil să spunem că utilizatorii sunt foarte generoși cu spații și paranteze în numele fișierelor. Este un coșmar să încerci să sincronizezi un fișier din backup. Iată un exemplu:

sudo rsync -a user@192.168.1.211:/media/bak/bim/daily.5/CURRENT JOBS/17/17142 Building (ECR) - 55900 EL CAMINO REAL, MENLO PARK/PRICARE/PENTRU PRETURI 02-15-2018 (02-15-2018 ACTUALIZARE BUGET BLDGS 1, 2, & 3)/01_Desene/500 ECR - Cladire Birouri _2/500 ECR - B2 - BS 1.8.18 - Set Civil.pdf .

Există o modalitate de a face față unor astfel de nume decât prin simpla adăugare de ghilimele, deoarece trebuie să scap din paranteză, precum și din spații? Speram să existe un pachet care să permită linux să se ocupe de astfel de nume de fișiere?

Mulțumiri

drapel in
Acea cale aproape mă face să cred că ar fi un fel de GUI sau TUI pentru a transfera fișiere. Dacă într-adevăr trebuie să vă ocupați de căi, probabil că aș pune calea într-un fișier și aș folosi opțiunea `--include-from` pentru a selecta fișierele.
Puncte:0
drapel cn

rsync are un număr mare de opțiuni pentru a controla selectarea fișierelor pe baza modelelor asemănătoare globului. De exemplu, --include-from=~/restore-pattern.txt iar fișierul poate conține noi modele delimitate de linii, cu suficient pentru a identifica fișierele:

/media/bak/bim/daily.5/CURRENT JOBS/17/17142**02-15-2018**500 ECR - B2 - BS 1.8.18 - Civil Set.pdf

Pe măsură ce rsync citește fișierul, nu trebuie să fie sigur pentru shell. Notă ** se potrivește cu bara oblică, ceea ce este convenabil, dar confirmați că se potrivește doar cu ceea ce doriți.

Din păcate, mediile asemănătoare POSIX nu au o modalitate consistentă de a face numele fișierelor corect. Vezi numele de fișiere ale lui David Wheeler și Nume de căi în Shell: Cum se face corect pentru detaliile enervante. În special, null este singurul caracter garantat că nu se află într-un nume de cale. Majoritatea scripturilor shell nu se ocupă de acest lucru, ele se vor rupe în colțul numelor fișierelor de intrare cu linii noi în ele.

Numele de căi separate sunt o modalitate de a maximiza numele de fișiere acceptate de instrumente. Cu GNU findutils și rysnc, ar putea folosi găsi -print0 pentru a scrie o listă de nume de fișiere, apoi rsync --from0 --files-from= pentru a transfera acele fișiere. Când faceți restaurări, salvarea listei exacte de fișiere poate fi utilă pentru referințe viitoare.

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.