staging.inyokaproject.org

If Abfrage ob Unterordner & Datei vorhanden // Platzhalter??

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

skapi85

Anmeldungsdatum:
19. August 2017

Beiträge: 48

Hallo,

ich hätte gerne eine If Abfrage die Prüft ob der Ordner "msg" und die Datei "time.txt" vorhanden ist, wenn nicht sollen diese Angelegt werden. Die Problematik ist dass in diesem Verzeichnis, wo die Prüfung erfolgen soll, mehrere Ordner sind (tom, hans, etc), wo die o.a. Abfrage angewendet werden soll. Das Ergebnis sollte ca so aussehen Bsp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
├── /
│   ├── var/
│       └── www/
│               └── user/
│                    └── tom/
│                           └── msg/
│                               └── time.txt
│                    └── hans/
│                           └── msg/
│                               └── time.txt
│                    └── ulf/
│                           └── msg/
│                               └── time.txt

Meine Abfrag für z.b. nur tom wäre so

1
2
3
4
5
6
7
8
9
#!/bin/bash
if ! [ -d /var/www/users/tom/msg ];then
                mkdir /var/www/users/tom/msg && echo "19700101000000" >> /var/www/users/tom/msg/time.txt
        else
                if ! [ -e /var/www/users/tom/msg/time.txt ];then
                        echo "19700101000000" >> /var/www/users/tom/msg/time.txt
                fi

fi

Wie müsste ich die Abfrage ändern damit die Ordner (hans, ulf, usw) auch überprüft werden?

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

1
2
3
4
for dir in /var/www/user/*/; do
  d="$dir/msg"
  mkdir -p "$d" && touch "$d/time.txt"
done

skapi85

(Themenstarter)

Anmeldungsdatum:
19. August 2017

Beiträge: 48

Danke für die Unterstützung! Ich hab es wiefolgt geändert da die Datei time.txt mit dem o.a. Inhalt nur angelegt werden soll wenn diese nicht vorhanden ist.

1
2
3
4
5
6
7
for dir in /var/www/users/*/; do
  d="$dir/msg"
  mkdir -p "$d"  
	if ! [ -e "$d/time.txt" ]; then
  		echo "19700101000000" > "$d/time.txt"
  	fi
done
Antworten |