Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Datei umbenennen, von der man nicht weiß wie sie heißt

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2020
    Beiträge
    3

    Datei umbenennen, von der man nicht weiß wie sie heißt

    Hallo,

    ich hab folgendes Problem und keinen Plan wie ich es lösen kann, da ich von Linux noch so gar keine Ahnung habe.

    Von meiner IP-Camera macht meine Synology Diskstation jede Minunte einen Schreenshot. Die Datei heißt z.B. Cam20200925-xxxxx.jpg
    Ich brauche aber immer das aktuelle Bild mit dem gleichen Namen um es so verwenden zu können wie ich will. Ich habe schon herausbekommen wie ich alle Dateien außer der jüngsten löschen kann, aber umbenennen in z.B. Cam.jpg bekomme ich nicht hin, da der Namenteil xxxxx immer anders ist.
    Hat da jemand eine Idee? Sollte Bash-Script laufen.

    Vielen Dank

    Grüße Markus

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    find, sort, ls| head / tail, ... liefert die Datei, mv benennt um.
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2020
    Beiträge
    3
    Danke, soweit war ich bei meiner Suche auch schon gekommen. Finde aber keine gute Beschreibung dieser Konstrukte ( ls| head / tail). Wie gesagt, ich hab von Linux keine Ahnung

  4. #4
    Besen-Wesen Avatar von Ginsengelf
    Registriert seit
    Feb 2003
    Ort
    Mars
    Beiträge
    589
    Moin, das soll dir sagen, dass du ls benutzen sollst, um die Datei(en) aufzulisten (evtl mit Schaltern wie -t zum sortieren nach der Zeit), und dann die Ausgabe davon (per |) an head oder tail weiterleitest, welche dann die Menge der Ergebnisse auf eine bestimmte Menge Zeilen vom Anfang oder Ende der ls-Ausgabe kürzen.
    Also in der Summe sowas wie
    ls -t | head -n 1

    Ginsengelf

    PS: normalerweise spucken Konsolentools mit "-h" oder "--help" ein paar Infos zu Parametern aus. Außerdem gibt es die Manpage (z.B. man head), die liefert einem alles, was man zum Tool wissen können wollte.
    God's in his heaven. All's right with the world.
    System: Ryzen 7 auf MSI MAG B550 Tomahawk, AMD Vega, 16 GB RAM, openSUSE Tumbleweed

  5. #5
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Also was du ja machen kannst, du machst dir einen Ordner und legst da drin selber ein paar Dateien an und übst. Als erstes willst du die neuste Datei bestimmen - Befehl dazu wurde dir genannt, ls -t | head -n 1 (ls kennt Wildcards)
    Nun sind das aber zwei Befehle, ein Fundamentales Konzept bei Linux sind Pipes
    Die Ausgaben vom ersten Befehl (ls -t) werden durch die Pipe (|) an die Eingabe des zweiten Befehls (head -n 1) geleitet. Der ls Befehl zeigt die Dateien an, der head Befehl reduziert die Ausgegebenen Zeilen auf eine.
    Dann willst du diese Datei umbenennen, dafür wird der Befehl mv verwendet, der wiederum den ermittelten Dateinamen aus den ersten beiden Befehle braucht. Linux bzw deine Shell hat dafür ein Feature das sich "Command Substitution" nennt (besserer Suchbegriff ist backticks), es ermöglicht dir die Ausgaben eines Befehls in eine Variable umzulenken.

    So trivial ist die Aufgabe also nicht, nur mal um das so einzuordnen

    Nochmal du solltest dir ein Ordner machen und ein bisschen üben, so als Anfang:
    Code:
    touch cam0001
    sleep 1
    touch cam0002
    sleep 1
    touch cam0003
    x=$(ls -t c* | head -n 1)
    echo "want to work with ${x}"
    echo ist ja auch schon ein Befehl, also praktisch fertig

    Siehe auch:
    https://man7.org/linux/man-pages/man1/ls.1.html
    https://man7.org/linux/man-pages/man1/head.1.html
    https://man7.org/linux/man-pages/man1/mv.1.html
    https://man7.org/linux/man-pages/man1/echo.1.html
    https://opensource.com/article/18/8/...on-pipes-linux
    http://www.gnu.org/software/bash/man...stitution.html

    https://man7.org/linux/man-pages/man1/sleep.1.html
    https://man7.org/linux/man-pages/man1/touch.1.html

    [edit]Anstatt mv könntest du auch rename verwenden - https://man7.org/linux/man-pages/man1/rename.1.html
    Geändert von nopes (27.09.20 um 17:44 Uhr)
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  6. #6
    Challanzen Avatar von atomical
    Registriert seit
    Dec 2003
    Beiträge
    1.342
    man könnte auch inotifywait (inotify-tools) benutzen - das muss dann im Hintergrund (z.B. mit screen starten) laufen und löst aus, sobald eine Datei geschrieben und geschlossen wurde

    Beispiel (aus einem längeren Script von mir rauskopiert, ungetestet)
    Code:
    INCOMING="/home/ip-cam/"
    
    inotifywait -m --format '%f' -e close_write $INCOMING | while read FILE
    
    do
    
      mv "$INCOMING$FILE" "/wunsch/pfad/wunsch-name.jpg"
    
    done
    mfg, atomical

    Wer andern seinen Grub vergräbt, hat meist ein Windows-Spielgerät.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jul 2009
    Ort
    Meißen
    Beiträge
    323
    Guten Abend!
    Wenn ich die Fragestellung richtig verstehe, so ist das aktuelle Bild maximal 1 Minute alt?
    Was spricht also gegen ein
    Code:
    find /irgendein/verzeichnis/ -name "*Cam*.jpg" -cmin -1
    Gruß, FM_81
    Ein Mann, der wollte fangen einen Barsch, das Wasser stand ihm bis zum Knie!
    (Du musst bis Frühjahr warten, da kommt Hochwasser, dann reimt es sich von selbst!)

  8. #8
    Registrierter Benutzer
    Registriert seit
    Sep 2020
    Beiträge
    3
    Vielen Dank euch. Ich habs hinbekommen

Ähnliche Themen

  1. Datei umbenennen klappt nicht immer
    Von T. Willert im Forum Linux in heterogenen Netzen
    Antworten: 2
    Letzter Beitrag: 04.10.06, 21:18
  2. Kann Datei nicht umbenennen ...
    Von Suppenhuhn im Forum Linux Allgemein
    Antworten: 23
    Letzter Beitrag: 29.08.06, 15:09
  3. suche spiel weiß aber nich wies heißt
    Von locai im Forum Spielen Allgemein
    Antworten: 5
    Letzter Beitrag: 06.05.05, 18:11
  4. Da ich nicht weiß, was PN heißt ...
    Von Wolfgang Uhr im Forum stationäre Hardware
    Antworten: 1
    Letzter Beitrag: 08.12.04, 09:51
  5. find & datei umbenennen
    Von linuxnow im Forum Anwendungen Allgemein, Software
    Antworten: 2
    Letzter Beitrag: 10.07.01, 10:26

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •