Split ведет себя странно в bash

У меня была аналогичная проблема в Kali Linux, и я нашел решение здесь:

https://forums.kali.org/showthread.php?33063-Application-Menu-Width-Issues

Автор выразил подозрение, что должно быть лучшее решение, но оно сработало для меня как шарм. Больше не нужно гадать, что делает пункт меню!

Суть ответа здесь:

Для редактирования этого файла (могут потребоваться привилегии root):

/usr/share/gnome-shell/extensions/apps-menu@gnome-shell-extensions.gcampax.github.com/extension.js

Ищите...

this.categoriesBox.box.width = 300;

(просто найдите 300)

...и заменить на:

this.mainBox.box.width = 950;
this.categoriesBox.box.width = 500;

Сохраните, выйдите из системы и войдите снова. Должно быть намного лучше.

Если нет, поэкспериментируйте с этими числами. Основное поле — это ширина всего меню; поле категорий, очевидно, имеет размер поля категорий в основном поле.

0
20.12.2019, 00:29
2 ответа

Это может быть связано с тем, что файл имеет нулевую -длину при создании. Существует состояние гонки, когда split определяет размер файла и решает, как его разделить, в то время как сервер ftp -счастливо увеличивает его все время.

Было бы разумно придумать механизм, в котором разделение ожидает полного прибытия файла, прежде чем начать его чтение. Как правило, зацикливайте файл до тех пор, пока он не увеличится за предыдущую минуту.

2
28.01.2020, 02:21

Как было объяснено в другом месте , событие createдля inotifywaitсрабатывает, когда файл (только что )был создан без ссылки на добавляемое содержимое. Измените событие createна close_write, чтобы вы не получали триггер, пока файл не будет закрыт вашей службой передачи файлов :

.
inotifywait -m -e close_write -e moved_to --format "%f" "$TARGET"

Вам также следует встроить некоторую обработку ошибок, чтобы ваш процесс мог отличать полностью переданный файл от файла, который был прерван на полпути. Это может быть проверка достоверности содержимого файла или передача файла с суффиксом tmp, который удаляется отправителем, переименовывающим файл при успешной передаче, и т. д.

Наконец, в качестве хорошей практики кодирования не забывайте двойные -кавычки ваших переменных везде, где вы их используете.

1
28.01.2020, 02:21

Теги

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