У меня возникли проблемы с решением @PSkocik
. В моей системе нет пакета GNU Parallel, и sem
выдал исключение, когда я собрал и запустил его вручную. Затем я попробовал пример семафора FIFO, который также вызвал некоторые другие ошибки, касающиеся связи.
@eyeApps
предложил xargs, но я не знал, как заставить его работать с моим сложным вариантом использования (примеры приветствуются).
Вот мое решение для параллельных заданий, которые обрабатывают до N
заданий за раз, как указано в _jobs_set_max_parallel
:
_lib_jobs.sh:
function _jobs_get_count_e {
jobs -r | wc -l | tr -d " "
}
function _jobs_set_max_parallel {
g_jobs_max_jobs=$1
}
function _jobs_get_max_parallel_e {
[[ $g_jobs_max_jobs ]] && {
echo $g_jobs_max_jobs
echo 0
}
echo 1
}
function _jobs_is_parallel_available_r() {
(( $(_jobs_get_count_e) < $g_jobs_max_jobs )) &&
return 0
return 1
}
function _jobs_wait_parallel() {
# Sleep between available jobs
while true; do
_jobs_is_parallel_available_r &&
break
sleep 0.1s
done
}
function _jobs_wait() {
wait
}
Пример использования:
#!/bin/bash
source "_lib_jobs.sh"
_jobs_set_max_parallel 3
# Run 10 jobs in parallel with varying amounts of work
for a in {1..10}; do
_jobs_wait_parallel
# Sleep between 1-2 seconds to simulate busy work
sleep_delay=$(echo "scale=1; $(shuf -i 10-20 -n 1)/10" | bc -l)
( ### ASYNC
echo $a
sleep ${sleep_delay}s
) &
done
# Visualize jobs
while true; do
n_jobs=$(_jobs_get_count_e)
[[ $n_jobs = 0 ]] &&
break
sleep 0.1s
done
Посмотрите эту статью.
Согласно статье, Ubuntu будет создавать такие папки при удалении файла с USB-накопителя. Предположительно, это позволит восстановить файл, если вы случайно удалили его.
Он содержит следующее решение:
Не используйте только кнопку удаления (иначе будет создана папка .Trash-1000)
Нажмите комбинацию клавиш shift+delete вместе, чтобы удалить, тогда Ubuntu не будет создайте папку .Trash-1000. (Примечание: если вы удалите файлы и папки таким образом, они исчезнут навсегда!)
В качестве альтернативы вы также можете использовать команду командной строки rm
, которая также удалит файл напрямую.
Я тоже один из тех, кого беспокоила эта проблема в течение ряда лет... неудовлетворенный существующими предложениями, я недавно нашел время, чтобы самостоятельно найти решение.
Исходя из предпосылки, что я хочу, чтобы Корзина исчезла -во всей системе, я обнаружил, что --на данный момент --единственным реальным решением является создание пользовательской -скомпилированной версии из libgio(» GIO ), который изменен для вызова g _файла _удаления()каждый раз, когда приложение вызывает g _файл _мусор().
Для всех технически подкованных пользователей, заинтересованных в этом решении. :Недавно я опубликовал пошаговое руководство -by -на GitHub :
.Глобальное отключение корзины GNOME в дистрибутивах на основе Debian -
Я нашел интересное обходное решение, которое работает отдельно для каждого устройства, протестировано на Xubuntu 18.10 с USB-устройствами и монтированием EncFS.
Это очень просто, удалите нужный .Trash-$(id -u)
каталог(id -u
чаще всего 1000 ), и создайте вместо него файл с таким же именем:
rm -rf /path/to/.Trash-1000
touch /path/to/.Trash-1000
Что происходит теперь, когда вы удаляете файл, по крайней мере, с помощью Thunar, так это то, что вместо перемещения файлов в корзину появляется диалоговое окно с предупреждением о том, что файлы будут уничтожены (, что тоже здорово, так как вы не Я не хочу, чтобы они были уничтожены случайно ).