неспособный к данным резервного копирования с планшета на базе Android на ноутбук с помощью tar!

Можно рассмотреть/etc/fstab как статическое монтирование, это - только способ сделать такую задачу, но не единственное, на самом деле, работайте, команда монтируются, и Вы видите много файловых систем, которые отсутствуют в fstab. Обслужите такой udev, и udisk справляются с большой частью "автомонтирования", игнорирующего/etc/fstab файл...

Так, если что-то смонтировано, или не часто это не имеет никакого отношения к/etc/fstab.

initramfs это - только временный rootfs, используемый во время процесса начальной загрузки до "истинного" rootfs, смонтирован, итак, почему initramfs должен быть на/etc/fstab?

4
13.04.2017, 15:36
2 ответа

Да, у меня есть решение. Смотрите, было 2 варианта подключения планшета. 1) Медиа-устройство (MTP) 2) Камера (PTP)

Я использовал 1-ю, где через командную строку я не мог сделать & через GUI, я не мог сохранить метку времени. Эта опция использует mtp для подключения. enter image description here

Затем вчера это заставило меня задуматься, и я подключился через 2-ю опцию, т.е. через камеру. Теперь через GUI (программное обеспечение для съемки) я смог импортировать файлы. Затем в nautilus, я обнаружил, что он был подключен не через mtp, а через gphoto2. enter image description here

Теперь я смог использовать командную строку и копировать через cp -a, сохраняя метку времени, и это сработало. Теперь я знаю, что все команды командной строки вроде tar будут работать как с любым внешним жестким диском или ручкой. Большое облегчение!

3
27.01.2020, 20:58

При использовании sed входные данные всегда считываются в буфере строки, и выходные данные могут быть явно сброшены на строку с помощью команды w . Например:

(       cd /tmp; c=
        mkfifo i o
        dd  bs=1    <o&
        sed -n w\ o <i&
        while   sleep 1
        do      [ -z "$c" ] && rm [io]
                [ "$c" = 5 ]   && exit
                date "+%S:%t$((c+=1))"
        done|   tee i
)

44: 1
44: 1
45: 2
45: 2
46: 3
46: 3
47: 4
47: 4
48: 5
48: 5
30+0 records in
30+0 records out
30 bytes (30 B) copied, 6.15077 s, 0.0 kB/s

... где tee (то есть spec 'd not block buffer ) записывает свой выход на терминал и в sed канал одновременно. sed считывает i поочередно и w переводит каждую строку, которую считывает, в свою o ut трубу, как только она делает это. dd считывает o ut канал за один раз, и он совместно использует stdout с tee , и поэтому они оба записывают выходные данные на терминал одновременно. Этого не произойдет, если sed не будет явно использовать буфер строки. Вот тот же прогон, но без команды w rite:

(       cd /tmp; c=
        mkfifo i o
        dd  bs=1    <o&
        sed ''  >o  <i&
        while   sleep 1
        do      [ -z "$c" ] && rm [io]
                [ "$c" = 5 ]   && exit
                date "+%S:%t$((c+=1))"
        done|   tee i
)

48: 1
49: 2
50: 3
51: 4
52: 5
48: 1
49: 2
50: 3
51: 4
52: 5
30+0 records in
30+0 records out
30 bytes (30 B) copied, 6.15348 s, 0.0 kB/s

В этом случае sed block buffers, и не записывает вещь в dd , пока не закроется ее вход, при котором точке она смывает свой выход и выходит. Фактически, он выходит, когда его устройство записи делает это в обоих случаях, как засвидетельствовано в диагностике dd , написанной в конце конвейера.

Тем не менее...

(       cd /tmp; c=
        mkfifo i o
        dd  bs=1    <o&
        cat >o      <i&
        while   sleep 1
        do      [ -z "$c" ] && rm [io]
                [ "$c" = 5 ]   && exit
                date "+%S:%t$((c+=1))"
        done|   tee i
)

40: 1
40: 1
41: 2
41: 2
42: 3
42: 3
43: 4
43: 4
44: 5
44: 5
30+0 records in
30+0 records out
30 bytes (30 B) copied, 6.14734 s, 0.0 kB/s

Теперь мой cat является версией GNU - и cat GNU (если вызывается без опций) никогда не блокируют буферы. Если вы также используете GNU cat , то мне кажется, что проблема не в вашем ретрансляторе, а в вашей программе Java. Однако если вы не используете GNU cat , то есть вероятность того, что он буферизирует выходные данные. К счастью для вас, есть только одна опция POSIX spec 'd для cat , и это для -u nbuffered вывода. Ты можешь попробовать.

Я смотрю на вашу вещь, и, поиграв с ней, я почти уверен, что ваша проблема - тупиковая ситуация. У вас есть один кот висит на входе там в конце, и если процесс JVM также ждет кого-то, чтобы поговорить с ним, то, вероятно, ничего никогда не произойдет. Так что я написал:

#!/bin/sh
die()   for io  in  i o e
        do      rm "$io"
                kill -9 "$(($io))"
        done    2>/dev/null
io()    while   eval "exec $((fd+=1))>&-"
        do      [ "$fd" = 9 ] &&
                { cat; kill -1 0; }
        done
cd /tmp; fd=1
mkfifo   i o e
{   io <o >&4 & o=$!
    io <e >&5 & e=$!
    io >i <&3 & i=$!
}   3<&0  4>&1  5>&2
trap "die; exit 0" 1
echo; wait

Это как-то небрежно в обращении с возвратными кодами, к сожалению. При большем количестве работы это может быть сделано, чтобы сделать это надежно. В любом случае, как вы можете видеть это фоны все из cat s, пишет пустую строку, чтобы stdout, затем ждать s, пока один из cat s уходит, что должно начать цепь, которая убивает всех из них во всех случаях, я думаю.

-121--73319-
  1. Переместите курсор на самый верхний символ (если вы выбираете строки вниз, внизу, если вы идете вверх) перед которой требуется вставить текст
  2. Переход в режим визуального блока путем нажатия клавиш Ctrl + v (если только действие вставки не сопоставлено с ним, в этом случае, вероятно, вы уже знаете, как вставить столбец)
  3. Выберите столбец с помощью клавиш со стрелками и
  4. Нажмите Shift + i (переключение в режим вставки)
  5. Введите текст, который требуется вставить (будет отображаться только в первой строке)
  6. Дважды нажмите клавишу esc. Если вы хотите удалить текст, выполните шаги 1-3 и просто выделите весь текст, который вы хотите удалить, затем нажмите x и вы закончите!

Примечание: Если вам нужны более конкретные функции, вы можете искать Vim плагины, другой выбор - экспортировать столбец xx в другой файл (с вырезом или авком), если вы хотите больше решений.

-121--93106-

У меня была похожая проблема и я нашел аналогичное решение, за исключением того, что у меня нет выбора для использования PTP по MTP на устройстве. Что я сделал: я установил гфотофы и пробежал

gphotofs ~/some-mount-point

тогда я мог использовать rsync, как раньше!

0
27.01.2020, 20:58

Теги

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