kopieren mit find?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

kopieren mit find?

Beitrag von latenite » 20.08.2009 14:26:46

Hallo Leute

ich habe ein echtes Probelm mit dem Umgang von Dateinamen in Scripten.
Ob ich umbenenne will, versuche zu kopieren, oder sonstige Aktionen auf einer Datei ausführen will die eine "unregelmäßigen" namen hat...

Wie z.B. würde man das folgende Script zum laufen bekommen? Unter der Bedingung find zu nutzen?

Code: Alles auswählen

#!/bin/bash

mkdir ./src_dir
mkdir ./dest_dir
echo "easy" > ./src_dir/filename
echo "tricky" > ./src_dir/\ white\ space\ new\ \\n\ line\ \|\ null\ \\0\ ifs\ \|\ back\ \\\ \|\ \ quo\"t\"es\ \ lastcharacter_is_a_whitespaces\ 
cp `find ./src_dir -mmin 1 -type f` ./dest_dir
Danke

p.s. ich weiß das is bestimmt schwierig...ja, ich habe gegoogelt und manpages gelesen und konnte keine 100% Löung finden :(

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: kopieren mit find?

Beitrag von michaels » 20.08.2009 14:43:38

Hallo,

schau dir mal den Thread an, damit solltest du weiterkommen:
http://debianforum.de/forum/viewtopic.php?f=15&t=113276

Gruß

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: kopieren mit find?

Beitrag von Spasswolf » 20.08.2009 14:43:43

So, z.B.:

Code: Alles auswählen

#!/bin/bash

mkdir ./src_dir
mkdir ./dest_dir
echo "easy" > ./src_dir/filename
echo "tricky" > ./src_dir/\ white\ space\ new\ \\n\ line\ \|\ null\ \\0\ ifs\ \|\ back\ \\\ \|\ \ quo\"t\"es\ \ lastcharacter_is_a_whitespaces\;
find ./src_dir -type f -exec cp {} ./dest_dir \;

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Re: kopieren mit find?

Beitrag von latenite » 20.08.2009 16:21:06

ok das mit dem kopierne geht so besten. Danke
Was aber wenn ich für jedes von "find" gefundenes file etwas machen möchte (z.B. ein simples echo oder eine namensänderung mit sed)?

Code: Alles auswählen

#!/bin/bash
mkdir -p ./src_dir
mkdir ./dest_dir
echo "easy" > ./src_dir/filename
echo "tricky" > ./src_dir/\ white\ space\ new\ \\n\ line\ \|\ null\ \\0\ ifs\ \|\ back\ \\\ \|\ \ quo\"t\"es\ \ lastcharacter_is_a_whitespaces\ 
for i in `find ./src_dir type -f -mtime 0;`; do echo $i; done
ist die bash mit ihrem forloop oder find für die trennung verantwortlich?

Danke

Antworten