Никакой вывод для входа от мишени при запуске mplayer как аргумент к терминалу гнома

С rsync

То, что Вы делаете, является по существу инкрементным резервным копированием: у Вашего друга (Ваше резервное копирование) уже есть исходные файлы, и Вы хотите сделать архив, содержащий файлы, которые Вы изменили из того оригинала.

Rsync имеет функции возрастающих резервных копий.

cd ORIGINAL_AND_MY_CHANGED
rsync -a -c --compare-dest=../ORIGINAL . ../CHANGES_ONLY
  • -a средства сохранить все атрибуты (времена, владение, и т.д.).
  • -c средства сравнить содержание файла и не полагаться на дату и размер.
  • --compare-dest=/some/directory средства, что файлы, которые идентичны в соответствии с тем каталогом и исходным деревом, не копируются. Обратите внимание, что путь относительно целевого каталога.

Rsync копирует все каталоги, даже если никакие файлы не заканчиваются там. Для избавлений от этих пустых каталогов работать find -depth CHANGES_ONLY -type d -empty -delete (или если Ваш find не имеет -delete и -empty, выполненный find -depth CHANGES_ONLY -exec rmdir {} + 2>/dev/null).

Затем сделайте архив из CHANGES_ONLY каталог.

Пешеходный путь

Пересеките каталог со своим файлом. Пропустите файлы, которые идентичны с оригиналом. Создайте каталоги в цели по мере необходимости. Скопируйте измененные файлы.

cd ORIGINAL_AND_MY_CHANGES
find . \! -type d -exec sh -c '
  for x; do
    if cmp -s "$x" "../ORIGINAL/$x"; then continue; fi
    [ -d "../CHANGES_ONLY/$x" ] || mkdir -p "../CHANGES_ONLY/${%/*}"
    cp -p "$x" "../CHANGES_ONLY/$x"
  done
' {} +
1
25.11.2011, 03:42
3 ответа

То, что продолжается, - то, что парсинг командной строки терминала гнома бросок. Вы работаете mplayer с /home/ferer/gdr01.wav, 2>&1, |tee и /home/ferer/junk.log как аргументы. Если Вы будете ожидать конца звукового файла, то Вы будете видеть сообщения об ошибках об этих несуществующих файлах в течение микросекунды, прежде чем терминал закроется.

Сложное правило терминала гнома любой фигуры. Или, что я рекомендую: yse -x опция вместо -e и вызовите оболочку явно.

gnome-terminal -x sh -c 'mplayer "$HOME/gdr01.wav" 2>&1 |tee $HOME/junk.log'
3
27.01.2020, 23:40
  • 1
    @Gilles:Спасибо.. это - все еще нечеткая проблема мне, но я не заметил различимого различия в как-x по сравнению с работой-e кроме синтаксиса заключения в кавычки. Однако в прошлый час, я наткнулся на тот же метод оболочки, который Вы предложили, когда я вспомнил замечающий, что, когда mplayer выполняется непосредственно от CLI, его родитель bash, но при запуске как аргумент к gnome-terminal его родитель gnome-terminal... таким образом, я добавил 'удар-c', и он работал.. Я не вполне понимаю почему.. Случается так, что этот слой непосредственного родителя необходим для обработки io-перенаправления? Я предполагаю, что это-... –  Peter.O 25.11.2011, 04:20
  • 2
    @ferer С -e, gnome-terminal делает его собственный неопределенно подобный оболочке парсинг аргумента (в простых случаях, он разделяет в пробелах, но это не все, что он делает), но на самом деле не вызывает оболочку. С -x, gnome-terminal вызывает данную программу с точно данными аргументами. –  Gilles 'SO- stop being evil' 25.11.2011, 04:28
  • 3
    (общие сведения читателям).. Именно так то, что я не должен буду экспортировать свой Вар (кроме известной среды Вар как $HOME, которые уже "экспортированы"), я использовал вариант команды Gilles;вот: gnome-terminal -x sh -c 'mplayer "$1" 2>&1 |tee "$2"' 0 "$aud" "$log" ... 0 просто заполнитель для того, что обычно $0. Два args, которые следуют 0 1$ и 2$.. ( 0 может быть тем, что Вы любите)... –  Peter.O 25.11.2011, 09:29
gnome-terminal -x mplayer $HOME/gdr01.wav 2>&1 |tee $HOME/junk.log &

Эта команда, по крайней мере, создает файл журнала.

0
27.01.2020, 23:40
  • 1
    Ваша команда ведет себя точно то же как моя (-x по сравнению с -e). Проблема состоит в том, что это производит журнал вывода терминала, но не какой mplayer выводы.. Это дает 1 строку в журнале ( ibus предупреждение). Это то же сообщение появляется в журнале, не запускаясь mplayer, например. gnome-terminal 2>&1 |tee $HOME/junk.log & ... вывод mplayer является тысячами строк долго (хотя это появляется на экране, поскольку возвращение наложило строку); это генерирует приблизительно 4-5 строк в секунду, но они не заканчивают в журнале. –  Peter.O 25.11.2011, 02:25

Я попытался бы поместить exec перед mplayer, так как это выполняет его на другой оболочке.

-1
27.01.2020, 23:40

Теги

Похожие вопросы