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