В каталогах ~/temp/a/foo/
и ~/temp/b/foo foo/
у меня есть файлы с именами bar1
, bar2
, bar bar1
, bar bar2
и т. д.
Я пытаюсь написать строку Bash, которая копирует все эти файлы в каталог, содержащий «foo» в качестве последней части имени, в папку над соответствующей папкой «foo».
Пока в именах файлов нет пробелов, это простая задача, но две следующие команды не работают при работе с каталогом foo foo
:
for dir in `find . -type d -name '*foo'` ; do cp $dir/* "$(echo $dir|sed 's_foo__g')" ; done
(Команда cp
не видит последние foo
из "foo foo"
как часть того же имени каталога.)
for dir in `find . -type d -name '*foo'` ; do cp "$dir/*" "$(echo $dir|sed 's_foo__g')" ; done
("$dir/*"
не расширяется.)
Попытки заменить $dir/*
на "$(echo $dir/*)"
оказались еще менее успешными.
Есть ли простой способ расширить $dir/*
, чтобы cp
понял?