Можно рассмотреть/etc/fstab как статическое монтирование, это - только способ сделать такую задачу, но не единственное, на самом деле, работайте, команда монтируются, и Вы видите много файловых систем, которые отсутствуют в fstab. Обслужите такой udev, и udisk справляются с большой частью "автомонтирования", игнорирующего/etc/fstab файл...
Так, если что-то смонтировано, или не часто это не имеет никакого отношения к/etc/fstab.
initramfs это - только временный rootfs, используемый во время процесса начальной загрузки до "истинного" rootfs, смонтирован, итак, почему initramfs должен быть на/etc/fstab?
Да, у меня есть решение. Смотрите, было 2 варианта подключения планшета. 1) Медиа-устройство (MTP) 2) Камера (PTP)
Я использовал 1-ю, где через командную строку я не мог сделать & через GUI, я не мог сохранить метку времени. Эта опция использует mtp для подключения.
Затем вчера это заставило меня задуматься, и я подключился через 2-ю опцию, т.е. через камеру. Теперь через GUI (программное обеспечение для съемки) я смог импортировать файлы.
Затем в nautilus, я обнаружил, что он был подключен не через mtp, а через gphoto2.
Теперь я смог использовать командную строку и копировать через cp -a
, сохраняя метку времени, и это сработало. Теперь я знаю, что все команды командной строки вроде tar
будут работать как с любым внешним жестким диском или ручкой. Большое облегчение!
При использовании 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 уходит, что должно начать цепь, которая убивает всех из них во всех случаях, я думаю.
Примечание: Если вам нужны более конкретные функции, вы можете искать Vim плагины, другой выбор - экспортировать столбец xx в другой файл (с вырезом или авком), если вы хотите больше решений.
-121--93106-У меня была похожая проблема и я нашел аналогичное решение, за исключением того, что у меня нет выбора для использования PTP по MTP на устройстве. Что я сделал: я установил гфотофы и пробежал
gphotofs ~/some-mount-point
тогда я мог использовать rsync, как раньше!