[решено] Bash, touch и пробелы в именах

Nov 06, 2014 20:51

Люди добрые, кто ещё не спит, помогите с башем.
Как нужно подавать параметр touch, чтобы оно съедало имена файлов с пробелами? Хочу синхронизировать даты между двумя директориями, вот так:

#!/bin/bash

orig=/home/user/test1
copy=/home/user/test2

for i in $(find $orig)
do
file=`echo $i | sed s@^$orig@$copy@`
touch -r "$i" "$file"
done

А получается вот что:

user@host:~> mkdir test1
user@host:~> mkdir test2
user@host:~> echo "12 34" > "test1/12 34"
user@host:~> echo "12 34" > "test2/12 34"
user@host:~> vi test.sh
user@host:~> ./test.sh
touch: failed to get attributes of ‘/home/user/test1/12’: No such file or directory
touch: failed to get attributes of ‘34’: No such file or directory

Я уже и так, и эдак, и в кавычках ему, и в фигурных скобках - не нравится ему. Что делать?

UPD
Да, дело было не в touch. Это for делил строки. IFS=$'\n' помогло
Спасибо

bash, touch

Previous post Next post
Up