…
read(0, "hello\n", 1024) = 6
read(0, "", 1024) = 0
read(0, "hello\n", 1024) = 6
read(0, "", 1024) = 0
read(0, "", 1024) = 0
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 11),...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f8dd4cef000
write(1, "0000000 h e l l o \\n "..., 72) = 72
write(1, "000000c\n", 8) = 8
exit_group(0) = ?
+++ exited with 0 +++
Здесь я сделал hello «ctrl -d» hello «ctrl -d» «ctrl -d» (второе приветствие усекается в выводе журнала ). Так что, похоже, это так запрограммировано.
ll /proc/self/fd/1
strace hexdump -C 2>/dev/pts/«number-at-end-of-output-of-previous-command»
Похоже, что tar работает, как и ожидалось, если я перемещаю tar перед его извлечением:
mv gitrepo.tar otherdir/
cd otherdir ; tar xvf gitrepo.tar
В качестве альтернативы, zip работает без предварительного перемещения архива:
zip -Zs -r -FS gitrepo.zip gitrepo/
В приведенном выше примере архивирование выполняется без сжатия.