Prüfen ob Datei vorhanden ?

T

tantor

Grünschnabel
Hallo zusammen,

ich habe ein Problem, zu prüfen ob eine Datei schon vorhanden ist oder nicht ?
Wenn die Datei vorhanden ist, soll an dem Dateinamen ein "_1" angefügt werden..

ich weiß aber nicht wie ?

Könnt Ihr mir vielleicht weiterhelfen bitte :

Code:
   for file in $(find . -name '*.lst' | grep -vi -e'/test/' -e'/tests/')
   do
      if test -f /listings/$file;
      then
         echo Datei umbenennen
      else
         ln "$file" /listings/
      fi
   done
 
Code:
#Umbenennen
mv "$file" "$(printf "%s" "$file" | sed 's/$/_1/g')"

Einen echten Zähler zu implementieren ist schon schwieriger, wäre aber besser,
sonst hast du bei mehreren Konflikten Datei.txt_1_1_1_1...
 
Hallo,

das ln soll er in dem Fall wo die Datei schon existiert halt auch machen, halt nur als einen anderen Dateinamen ....
 
Ich weiß zwar nicht wirklich, was du willst, aber ich schmeiß mal ein paar Sachen in den Raum…
*es tu*
Code:
feil="bla.avi"
echo "$feil" "${feil}_1"
echo natürlich entsprechend in mv ändern…
Und statt:
Code:
if test -f "$file"
vielleicht einfach:
Code:
if [ -f "$file" ]; then echo 'zomg'; fi
Schreibt/Ließt sich einfacher.

und @
das ln soll er in dem Fall wo die Datei schon existiert halt auch machen, halt nur als einen anderen Dateinamen ....
Einfach die ln-Anweisung noch zum if-Block hinzufügen? 0o
Code:
      if test -f /listings/$file;
      then
         mv "$file" "${file}_1"
         ln "${file}_1" /listings/
      else
         ln "$file" /listings/
      fi

Wäre btw auch nicht schlecht die verwendete shell zu kennen, wobei ich auf bash tippe…
 

Ähnliche Themen

If-Abfrage kommt nicht positiv zurück, obwohl Kriterium erfüllt

Switche abfragen über Script

script sshpass

Verschlüsseltes Backup-Script mit rsync

[gelöst] - for file in ... nur für bestimmte Endungen?

Zurück
Oben