స్క్రిప్ట్ బాష్: SD నుండి PC కి కొత్త చిత్రాలను కాపీ చేయండి

కొన్నిసార్లు మన PC లో పునరావృతమయ్యే పనులను చేయవలసి ఉంటుంది, ఇది కాలక్రమేణా శ్రమతో కూడుకున్నది. కొన్ని సందర్భాల్లో మనకు పని చేసే స్క్రిప్ట్‌లను ఉపయోగించడం ద్వారా మన పనిని సులభతరం చేయవచ్చు.

ఈ రోజు నేను మీకు బాష్ స్క్రిప్ట్‌ను చూపించడానికి వ్రాస్తున్నాను: నా డిజిటల్ కెమెరా నుండి SD కార్డ్ నుండి PC కి కొత్త చిత్రాలను కాపీ చేయండి.

పరిస్థితి:

నా కంప్యూటర్‌కు డౌన్‌లోడ్ చేయడానికి కొత్త చిత్రాలను కలిగి ఉన్న ప్రతిసారీ, నేను ఈ క్రింది వాటిని చేస్తాను:

1. ఉప డైరెక్టరీలలో వర్గీకరించబడిన చిత్రాలను కలిగి ఉన్న డైరెక్టరీని తెరవండి.

2. ప్రస్తుత తేదీ పేరుతో yy.mm.dd ఆకృతిలో కొత్త ఉప డైరెక్టరీని సృష్టించండి

3. మునుపటిసారి సృష్టించిన ఉప-డైరెక్టరీకి తరలించి, చివరిగా సేవ్ చేసిన చిత్రం ఏమిటో చూడండి.

4. SD కార్డ్ నుండి కొత్త చిత్రాలను కొత్తగా సృష్టించిన డైరెక్టరీకి కాపీ చేయండి.

దీనికి ఒక నిమిషం కన్నా ఎక్కువ సమయం పట్టదు, కానీ కార్డును చొప్పించడం ద్వారా ఈ ప్రక్రియ చేయడం సులభం.

నేను కార్డ్‌ను ఉపయోగించాలి ఎందుకంటే కెమెరా నుండి చిత్రాలను నేరుగా USB ద్వారా బదిలీ చేయలేను, ఎందుకంటే Linux కోసం డ్రైవర్లు లేరు (ఎప్పటిలాగే…)

పరిష్కారం:

కింది వాటిని చేసే బాష్ స్క్రిప్ట్‌ని సృష్టించండి:

1. SD కార్డ్ మౌంట్ చేయబడితే ప్రారంభంలో ధృవీకరించండి. లేకపోతే అది ముగుస్తుంది.

2. చిత్రాల ప్రధాన డైరెక్టరీకి వెళ్లి చివరిదాన్ని కనుగొనండి. మీ పేరును వేరియబుల్‌లో సేవ్ చేయండి.

3. ప్రస్తుత తేదీని చివరి డైరెక్టరీతో పోల్చండి, అవి భిన్నంగా ఉంటే, "yy.mm.dd" ఆకృతిలో ప్రస్తుత తేదీ పేరుతో కొత్త డైరెక్టరీని సృష్టించండి.

4. చివరి డైరెక్టరీకి తరలించండి (క్రొత్తది కాదు, పాతది) మరియు వేరియబుల్‌లో సేవ్ చేయండి చివరిసారి బదిలీ చేసిన చివరి ఫైల్ పేరు.

ఈ దశలో, సమీప భవిష్యత్తులో కార్డులోని క్రొత్త ఫైల్‌లతో పోల్చడానికి ఫైల్ పేరును ఫిల్టర్ చేయడం అవసరం. ఫైల్స్ కింది ఆకృతిని కలిగి ఉన్నాయి: పేరు xxx_xxxx.eee ఎక్కడ: x = అంకె 0 నుండి 9 మరియు eee = పొడిగింపు (JPG, MOV). ఉదాహరణకు: 100_5684.JPG, 100_5699.MOV. వడపోత తరువాత, పేరు xxxxxxx గా మిగిలిపోయింది కాబట్టి, పై ఉదాహరణలో, మనకు ఇవి ఉంటాయి: 1005684, 1005699.

డైరెక్టరీ ఇతర రకాల ఫైళ్ళను కలిగి ఉంటుంది లేదా మార్చబడిన పేర్లతో ఉంటుంది కాబట్టి, ఫిల్టర్ ఉపయోగించబడుతుంది.

5. కార్డుకు తరలించి, మునుపటి పాయింట్‌లో ఉన్నట్లుగా ఫైల్‌లను ఫిల్టర్ చేయండి.

6. కార్డ్‌లోని ఫైల్‌లను మునుపటి సమయం (పాయింట్ 4) బదిలీ చేసిన చివరి ఫైల్‌ను కలిగి ఉన్న వేరియబుల్‌తో పోల్చండి మరియు పేరు పెట్టబడిన ఫైల్‌లను కొత్తగా సృష్టించిన డైరెక్టరీకి కాపీ చేయండి వేరియబుల్ కంటే ఎక్కువ. (పేర్లు కేవలం సంఖ్యలు కాబట్టి).

7. ఫైల్ మేనేజర్‌తో క్రొత్త చిత్రాలను కలిగి ఉన్న డైరెక్టరీని తెరవండి.

తరువాత నేను స్క్రిప్ట్ ఎలా పనిచేస్తుందో వివరించే వ్యాఖ్యలతో మీకు చూపిస్తాను. నేను ప్రోగ్రామర్ కాదని నేను స్పష్టం చేస్తున్నాను మరియు నేను పని చేసే వరకు ఇది నాకు చాలా తలనొప్పిని ఇచ్చింది, ప్రత్యేకించి "ఫర్" లూప్ కోసం పేర్లను ఫిల్టర్ చేయాల్సి వచ్చినప్పుడు.

#! / bin / bash ### --- SD MOUNTED గా ఉంటే ధృవీకరించండి --- ### SD = / media / KODAK / DCIM / 100Z8612 if [[-d $ SD]]; అప్పుడు ### --- డైరెక్టరీని సృష్టించండి --- ### # చిత్రాల డైరెక్టరీని చదవండి మరియు # ప్రస్తుత తేదీ పేరుతో మరొకటి సృష్టించండి మరియు అది లేకపోతే 755 అనుమతులు. cd ~ / పిక్చర్స్ / కోడాక్ ULTDIR = `ls -1 | తోక -n1` # జాబితాలోని చివరి డైరెక్టరీ. DATE = `తేదీ +% y.% M.% D` # YY.MM.DD ఆకృతిలో ప్రస్తుత తేదీ ఉంటే [" $ LASTDIR "! =" $ DATE "]; అప్పుడు mkdir -vm 755`date +% y.% m.% d` # ప్రస్తుత తేదీతో డైరెక్టరీని సృష్టించండి fi ### --- F ULTDIR --- ### cd $ ULTDIR ULTIMG = `ls - 1 [0-9] [0-9] [0-9] _ [0-9] [0-9] [0-9] [0-9]. [JM] [PO] [GV] | తోక -n1 | cut -c1-3,5-8` # పేరుతో చివరి చిత్రాన్ని xxx_XXXX.eee చూడండి .eee = ఫైల్ పొడిగింపు (JPG లేదా MOV) # స్క్రిప్ట్ పూర్తయిన తర్వాత పని చేస్తుందని నిర్ధారించడానికి: # 100_9999.eee - > 101_0000.eee మరియు లోపాలు లేవు # CUT కాబట్టి ఇది xxxXXXX ఫార్మాట్‌లో ఉంది ### --- జాబితా యొక్క చివరి డైరెక్టరీకి తరలించండి --- ### # లేదా ఇటీవల సృష్టించబడినట్లయితే, # cd సృష్టించబడితే .. ULTDIR = `ls -1 | తోక -n1` # మళ్ళీ వెళుతుంది ఎందుకంటే లేకపోతే cd / media / KODAK / DCIM / 100Z8612 ### --- యొక్క మునుపటి ULTDIR ను తీసుకుంటుంది --- SD లోని ఫైళ్ళను ఫిల్టర్ చేయండి --- ### FILTER = `ls -1 [0 -9] [0-9] [0-9] _ [0-9] [0-9] [0-9] [0-9]. [JM] [PO] [GV] `### - - చివరిదానితో గొప్ప ఫైల్‌లతో పోల్చండి --- # FILTER do N = `echo $ I | cut -c1-3,5-8` # [["$ ULTIMG" -lt "$ N"] ఉంటే పేరును కత్తిరించండి; అప్పుడు cp $ I ~ / Pictures / kodak / $ ULTDIR fi done thunar ~ / Pictures / kodak / $ ULTDIR # Thunar తో కొత్త డైరెక్టరీని తెరవండి 0 fi exit 0

చివరగా ఇది పని చేయడానికి, నేను దానిని మెనులోని Xfce యొక్క "తొలగించగల డ్రైవ్‌లు మరియు మీడియా" అనువర్తనానికి జోడించాను

సెట్టింగులు → Xfce 4 సెట్టింగుల మేనేజర్ → తొలగించగల డ్రైవ్‌లు మరియు మీడియా → కెమెరాలు

దిగుమతి చిత్ర ఎంపికను ఉపయోగించి. నేను కార్డును చొప్పించినప్పుడు, నేను చిత్రాలను దిగుమతి చేయాలనుకుంటున్నారా అని డైలాగ్ బాక్స్ అడుగుతుంది. అంగీకరించినప్పుడు, స్క్రిప్ట్ అమలు అవుతుంది.

బాగా అంతే. టెక్స్ట్ యొక్క గజిబిజికి క్షమించండి, ఇది నా మొదటి పోస్ట్ మరియు స్క్రిప్ట్‌ను సవరించేటప్పుడు దాన్ని ఎలా పట్టిక పెట్టాలో నాకు తెలియదు. కనీసం ఒక ఆలోచనను కలిగి ఉండటం మరియు ప్రతి ప్రత్యేక సందర్భానికి అనుగుణంగా మార్చడం ఎవరికైనా ఉపయోగపడుతుందని నేను ఆశిస్తున్నాను.

నేను లైసెన్స్ ఇవ్వలేదు ఎందుకంటే GPL యొక్క ప్రతి సంస్కరణ గురించి నాకు బాగా తెలియజేయలేదు, కాని వారు దానిని కాపీ చేసి సవరించడానికి స్వేచ్ఛ కలిగి ఉన్నారు. మరియు అది ఎలా మెరుగుపడుతుందో చెప్పడానికి సంకోచించకండి లేదా అదే విధంగా చేయడానికి ఇతర మార్గాలు ఉంటే, కానీ సులభం.

వ్యాసం యొక్క కంటెంట్ మా సూత్రాలకు కట్టుబడి ఉంటుంది సంపాదకీయ నీతి. లోపం నివేదించడానికి క్లిక్ చేయండి ఇక్కడ.

13 వ్యాఖ్యలు, మీదే వదిలేయండి

మీ వ్యాఖ్యను ఇవ్వండి

మీ ఇమెయిల్ చిరునామా ప్రచురితమైన కాదు. లు గుర్తించబడతాయి గుర్తించబడతాయి *

*

*

  1. డేటాకు బాధ్యత: మిగ్యుల్ ఏంజెల్ గాటన్
  2. డేటా యొక్క ఉద్దేశ్యం: కంట్రోల్ స్పామ్, వ్యాఖ్య నిర్వహణ.
  3. చట్టబద్ధత: మీ సమ్మతి
  4. డేటా యొక్క కమ్యూనికేషన్: డేటా చట్టపరమైన బాధ్యత ద్వారా తప్ప మూడవ పార్టీలకు తెలియజేయబడదు.
  5. డేటా నిల్వ: ఆక్సెంటస్ నెట్‌వర్క్స్ (EU) హోస్ట్ చేసిన డేటాబేస్
  6. హక్కులు: ఎప్పుడైనా మీరు మీ సమాచారాన్ని పరిమితం చేయవచ్చు, తిరిగి పొందవచ్చు మరియు తొలగించవచ్చు.

  1.   పెర్కాఫ్_టీఐ 99 అతను చెప్పాడు

    చాలా ఆసక్తికరమైన జోక్విన్, కోడ్‌ను భాగస్వామ్యం చేయడం సులభం అయిన చోట పేస్ట్‌లో స్క్రిప్ట్‌ను అప్‌లోడ్ చేయడం మంచి ఆలోచన, మరియు మీరు చెప్పినట్లుగా ఇది ఇతర అవసరాలకు అనుగుణంగా ఉంటుంది మరియు బాష్ కొంచెం ఎక్కువగా ఉపయోగించడం నేర్చుకుంటుంది.

    గ్రీటింగ్లు !!!

    1.    జాక్యిన్ అతను చెప్పాడు

      పూర్తయింది, జోడించబడింది http://paste.desdelinux.net/4737
      ధన్యవాదాలు!

  2.   vr_rv అతను చెప్పాడు

    ఇప్పటికే డైరెక్టరీలో ఉన్న ఛాయాచిత్రాన్ని కాపీ చేసేటప్పుడు, ఇది ఇప్పటికే ఒకటి ఉందని సూచించదు మరియు దానిని భర్తీ చేసే అవకాశాన్ని లేదా కాపీ చేయకుండా ఉండటానికి మీకు అవకాశం ఇస్తుందా?

    ఏమైనప్పటికీ ఇది చాలా ఉపయోగకరంగా ఉంటుంది, ఎందుకంటే ఇది ప్రతిదీ స్వయంచాలకంగా చేస్తుంది

    1.    జాక్యిన్ అతను చెప్పాడు

      హాయ్. ఇది వాస్తవానికి పునరావృతమయ్యే చిత్రాలను కాపీ చేయదు, అది వాటిని విస్మరిస్తుంది. వినియోగదారు పరస్పర చర్య అవసరం లేకుండా క్రొత్త ఫైళ్ళను కాపీ చేయాలనే ఆలోచన ఖచ్చితంగా ఉంది. అలాగే, మీరు రోజుకు ఒకటి కంటే ఎక్కువ చిత్రాలను జోడించకపోతే, స్క్రిప్ట్ క్రొత్త ఫైళ్ళను క్రొత్త డైరెక్టరీకి కాపీ చేస్తుంది. నేను క్లుప్తంగా వివరించాను:

      ఈ రోజు 10/03/13, నేను 13.03.10/100/4440 అనే డైరెక్టరీని సృష్టించి, లోపల కొన్ని చిత్రాలు లేదా వీడియో (MOV) ను కాపీ చేస్తాను: 100_4441.JPG, 100_4442.JPG, 100_4445.MOV, XNUMX_XNUMX.JPG
      (తప్పిపోయిన 4443 మరియు 4444 కెమెరాతో తొలగించబడ్డాయి, చివరిది 4445).

      అప్పుడు నేను 01/04/13 న స్క్రిప్ట్‌ని ఉపయోగిస్తాను మరియు కార్డ్‌లో కొత్త చిత్రాలు ఉన్నాయని అనుకుందాం. స్క్రిప్ట్ 13.04.01 అనే డైరెక్టరీని సృష్టిస్తుంది మరియు కొత్త చిత్రాలు / వీడియోల లోపల "4445" కంటే ఎక్కువ పేరు ఉంది; ఎందుకంటే ఇది డైరెక్టరీ 13.03.10 ను చదువుతుంది మరియు చివరి చిత్రం 100_4445.JPG. అదే రోజు నేను కార్డు నుండి క్రొత్త చిత్రాలతో స్క్రిప్ట్‌ను తిరిగి అమలు చేస్తే, అవి 13.04.01 డైరెక్టరీకి జోడించబడతాయి. ఏదీ ఓవర్రైట్ చేయబడదు.

      నేను నా ఆలోచనను కొంచెం స్పష్టం చేశానని ఆశిస్తున్నాను

  3.   మనుతి అతను చెప్పాడు

    రాపిడ్ ఫోటో డౌన్‌లోడ్ మీకు తెలియదా? నేను అన్నింటినీ మరియు మరిన్ని చేస్తానని అనుకుంటున్నాను.

    1.    మిస్టర్ బ్లాక్ అతను చెప్పాడు

      విషయం ఏమిటంటే, సన్నగా ఉన్న వ్యక్తి స్వయంగా చేసాడు, అతను నేను fun హించినట్లు ఆనందించేవాడు మరియు అది వేరొకరికి సేవ చేయగలదు

    2.    జాక్యిన్ అతను చెప్పాడు

      హాయ్. నాకు తెలియదు మరియు నేను ఇంటర్నెట్‌లో చూసిన దాని నుండి మంచిది అనిపిస్తుంది, కాని వాస్తవానికి స్క్రిప్ట్ నాకు అవసరమైనదాన్ని ఖచ్చితంగా నెరవేరుస్తుంది; ఇది కార్డును చొప్పించడం మరియు అన్ని ఫైళ్ళను స్వయంచాలకంగా కాపీ చేయడం.

      ఇది కొంచెం ఎక్కువ నేర్చుకోవడానికి కూడా నాకు సహాయపడింది ఎందుకంటే ఇది మొదటిసారి పని చేయలేదు; పొరపాట్లు జరిగాయి మరియు వారి నుండి చాలా నేర్చుకుంటారు.

      ఇతరులకు సమస్యలను పరిష్కరించడానికి స్క్రిప్ట్‌ను చూపించాలని నేను అనుకోలేదు, మీరు పేర్కొన్న అనువర్తనాలు మరింత సాధారణమైనవి. మీరు చదవడానికి మరియు ఉచ్చులు (ఈ సందర్భంలో "కోసం") మరియు సాధారణ వ్యక్తీకరణలు (వేరియబుల్స్ "ULTIMG" మరియు "స్క్రిప్ట్‌లోని" FILTER ") ను ఉపయోగించుకునే క్రొత్త విషయాలను సృష్టించడానికి నేను దీన్ని పంచుకున్నాను.

  4.   కోడ్‌లాబ్ అతను చెప్పాడు

    ఇది ఉపయోగకరంగా అనిపిస్తుంది, నాకు ఒక రోజు అవసరమైతే దాన్ని ఉంచుతాను. ధన్యవాదాలు.

    1.    జాక్యిన్ అతను చెప్పాడు

      ధన్యవాదాలు!

  5.   పేరులేనిది అతను చెప్పాడు

    కానీ దాని కోసం మనకు ఇప్పటికే grsync ఉంది

    1.    జాక్యిన్ అతను చెప్పాడు

      అవును, కానీ rsync బ్యాకప్‌ల కోసం ఎక్కువగా ఉపయోగించబడుతుందని నేను అనుకుంటున్నాను. నేను ఎప్పుడూ చూడలేదు కాని అది మనందరినీ పరిగణనలోకి తీసుకొని నేర్చుకోవలసిన అప్లికేషన్.

      Rsync కోసం గ్రాఫికల్ ఇంటర్ఫేస్ ఉందని నాకు తెలియదు.

  6.   lastnewbie అతను చెప్పాడు

    వావ్, నేను కోడ్ చాలా ఆసక్తికరంగా, చాలా ఉపయోగకరంగా ఉన్నాను. దానిని కొనసాగించండి. 😀
    నాకు అవసరమైతే దాన్ని ఉంచుతాను.

    శుభాకాంక్షలు.

    1.    జాక్యిన్ అతను చెప్పాడు

      ధన్యవాదాలు!.