Используя -print0
одна опция, но не вся поддержка программ с помощью nullbyte-разграниченных потоков данных, таким образом, необходимо будет использовать xargs
с -0
опция для некоторых вещей, как ответ Gnouc отметил.
Альтернатива должна была бы использовать find
-exec
или -execdir
опции. Первое из следующего подаст имена файлов к somecommand
по одному, в то время как второе расширится до списка файлов:
find . -type f -exec somecommand '{}' \;
find . -type f -exec somecommand '{}' +
Можно найти, что Вы - более обеспеченное использование globbing во многих случаях. Если у Вас есть современная оболочка (колотите 4 +, zsh, ksh), можно получить рекурсивный globbing с globstar
(**
). В ударе необходимо установить это:
shopt -s globstar
somecommand ./**/*.txt ## feeds all *.txt files to somecommand, recursively
У меня есть высказывание строки shopt -s globstar extglob
в моем .bashrc, таким образом, это всегда включается для меня (и так расширенные шарики, которые также полезны).
Если Вы не хотите рекурсивности, очевидно, просто используйте ./*.txt
вместо этого, для использования каждого *.txt в рабочем каталоге. find
имеет некоторые очень полезные мелкомодульные возможности поиска и обязателен для десятков тысяч файлов (в которой точке Вы столкнетесь с максимальным количеством оболочки аргументов), но для ежедневного использования это является часто ненужным.
Это создает "pid-файл", как на него ссылались некоторые другие люди. Вы можете затем получить его на bash, например, с помощью [1175694]$(
Просто остерегайтесь, что если процесс умер и pid был переработан, то вы будете сигнализировать о неправильном. Вы можете проверить:
Смотрите комментарии, если [1175698]"$(ps -o comm=p "$pid")"[1175699] выглядит для вас странно. Возможно, вы захотите провести более тщательную проверку, если есть вероятность, что кто-то делает что-то хитрое с содержимым [1175700]/tmp/myprocess.pid[1175701] (которое не должно быть записано другими пользователями!).[1175317].PID-файлы обычно размещаются в /var/run или /run, но могут быть размещены и в других местах, включая /tmp. Надлежащее" расположение согласно стандарту Filesystem Hierarchy Standard находится в /run, но в /var/run также видно значительное использование (и на многих современных системах это то же самое, что и в /run) и /tmp не требуют привилегий root при запуске (которые системные демоны очень часто имеют перед тем, как сбрасывать привилегии)
Этот файл можно прочитать различными способами, чтобы получить PID рассматриваемого процесса, для того, чтобы послать сигнал этому процессу.[1175323].
Но используя системный вызов, мы можем назначить процессу фиксированный PID. Но мы не знаем, как этого достичь. [1175309]