Вы не можете экспортировать функции, не в способе, которым Вы описываете. Оболочка только загрузится ~/.bashrc
файл на запуске интерактивной оболочки (ищут "Вызов" в странице справочника удара).
То, что можно сделать, создают "библиотеку", которая загружается, когда Вы запускаете программу:
source "$HOME/lib/somefile"
И поместите свои неинтерактивные функции и настройки туда.
можно использовать, находят с xargs для этого
find /thisdir -type f -name "*.ogg" -print0 | xargs -0 -Imysongs mv -i mysongs /somedir
-I в вышеупомянутой команде говорит xargs, какую замещающую строку Вы хотите использовать (иначе, это добавляет аргументы в конец команды).
ИЛИ
В Вашей команде просто пытаются переместиться '{}' после mv
команда.
find /thisdir -type f -name '*.ogg' -exec mv -i {} /somedir \;
find /thisdir -type f -name "*.ogg" -exec mv {} /somedir \;
Вы отчасти обменялись аргументами в пользу mv
В zsh или ударе 4, для сбора всех *.ogg
файлы в /somedir
:
mv /thisdir/**/*.ogg /somedir
Если Вы хотели воспроизвести иерархию каталогов: (предупреждение, введенное непосредственно в браузер)
rsync -a --prune-empty-dirs --include='*/' --include='*.ogg' --exclude='*' /thisdir /somedir
я получил ошибку "Каталог не пуст". чтобы исправить это, я запускаю:
find. -name 'node_modules' -type d -prune -exec mkdir -p./another/dir/{} \; -exec mv -i {}./NODE_MODULES/{} \;
это сохранит структуру каталогов.
mv -i
здесь, таким образом, Вы не рискуете перезаписывать файлы, если что-то неожиданное происходит. – Gilles 'SO- stop being evil' 04.09.2010, 00:41mv -t <targetdir>
и + вместо \; – 04.09.2010, 01:29