|
| |||
|
|
[решено] Bash, touch и пробелы в именах Люди добрые, кто ещё не спит, помогите с башем. Как нужно подавать параметр 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' помогло Спасибо |
||||||||||||||