Добавьте аргументы при завершении названия команды

Предполагая, что сетевой диск смонтирован (NFS или что-то еще),

tail -f -c1000000000000 /your/local/file.dat > /mnt/nfs/drive/file.dat

Начнется копирование выходного файла на сетевой диск и его синхронизация. Когда ваша программа завершится, вы должны увидеть один и тот же файл размером 200 ГБ как в локальной, так и в сетевой файловой системе. Может сделать md5sum на обоих, чтобы проверить.

Некоторые разновидности unix могут также поддерживать запуск tail с - pid = {Ваш pid здесь} , который автоматически прекращает работу после завершения работы pid.

1
07.04.2014, 02:42
2 ответа
[1122421] Это будет не так просто, как вы хотите. Программируемое завершение не способно заменить команды. И вы должны закончить (т.е. пробела в трейлинге) командное слово до начала программируемого завершения.[12237]Это означает, что вы должны создать псевдоним или функцию для [1123001]cdd[1123002], которая заменяет его на [1123003]cd[1123004]. Это не должно быть проблемой (за исключением имен каталогов, содержащих newline...). Остальное можно сделать так:[12238]поместив курсор внутрь слова[12239]я не думаю, что это хорошая идея. Но имея это в виду: Можно сдвинуть курсор назад, но я не смог это сделать из программируемого завершения:[12240]
1
27.01.2020, 23:52

Возможно, вы найдете что-то, что можно использовать в функции READLINE.

Смотрите LESS='+/shell-expand-line' man bash для начала.

shell-expand-line может быть не лучшим вариантом для ваших целей, но он установлен по умолчанию (при условии, что у вас есть опции оболочки по умолчанию, т.е. echo $SHELLOPTS содержит :emacs:).

Некоторые другие возможности можно увидеть, выполнив bind -p | grep expand. Любая из этих функций "expand" сделает то, о чем вы просите.

В основном вы зададите псевдоним:

alias cdd='cd /your/home/folder/Downloads/'

... в вашем .bashrc, и когда вы захотите расширить его, вы напечатаете cdd, и он будет расширен. Это использование уже установленного shell-expand-line, как упоминалось выше - он расширяет псевдонимы и расширение истории, а также переменные. (Попробуйте набрать l.; echo $SHELLOPTS; !!! и нажмите .)

Вы можете связать другие функции, такие как просто alias-expand-line, которые могут лучше служить вашим целям.

0
27.01.2020, 23:52

Теги

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