Hallo, Am Fri, 26 Mar 2021, Peter McD schrieb:
Am 26.03.21 um 15:27 schrieb Kyek, Andreas, Vodafone DE:
Peter McD wrote:
ich suche eine Lösung mit find Ziel: 1 - einem Set Verzeichnisse ohne Inhalt an eine andere Stelle kopieren und 2 - jedem Verzeichnis den gleichen Namen anhängen
Beispiel: test_a -> /tmp/test_a_Anhang test_b -> /tmp/test_b_Anhang
Beim ersten Teil hilft mir find. find ./ -maxdepth 1 -type d -exec mkdir -p /tmp/'{}' \;
wie könnte ich den zweiten erreichen?
warum nicht "einfach" ... -exec mkdir -p "/tmp/{}<your extension>" \;
Wen es so einfach wäre:-(
Also: test_a/ test_b/
find ./ -maxdepth 1 -type d -exec mkdir -p "/tmp/{}-Anhang" \;
Ergebnis: -Anhang/ test_a-Anhang/ test_b-Anhang/
Ein "-Anhang" zu viel.
Den bekommst du wg. dem './' das auch gefunden wird. Abhilfe: find ./ -mindepth 1 -maxdepth 1 -type d -exec mkdir -p "/tmp/{}-Anhang" \; Generell noch ein Tip: In einem script im '-exec' kann man mehr machen, das quoting wird aber schnell eklig. Schema: find ... -exec sh -c 'script' find-sh {} + Hier also z.B.: find ./ -mindepth 1 -maxdepth 1 -type d -exec sh -c ' for d; do mkdir -p "/tmp/${d}-Anhang"; done;' find-sh {} + Ansonsten kann in Perl das Modul File::Find helfen, damit läßt sich quasi alles machen, ist aber etwas Einarbeitung, bei der find2perl helfen kann, teils aber unnötig komplex ist und z.B. -{min,max}depth nicht kennt, das kann man aber im "wanted" einbauen oder File::Find::Rule verwenden. HTH, -dnh -- dprintk("NFSD: laundromat service - starting\n"); linux-2.6.19/fs/nfsd/nfs4state.c