Улучшение производительности числовых циклов в tcl

[

] Причина, по которой []*/[] совпадает с каталогами, заключается в том, что итоговый []/[] ограничивает количество совпадений с каталогами. Этот эффект срабатывает только в том случае, если []/[] находится после шаблона, в [] нельзя использовать []/[] внутри скобок!(*/)[]. В bash нет встроенной возможности делать то, что вам нужно.[

] [

]Вы можете сделать цикл над всеми файлами и собрать массив.[

] [

non_directories=()
for x in *; do
  [ -d "$x" ] || non_directories+=("$x")
done
somecommand "${non_directories[@]}"

] [

]Вы также можете использовать []find[], если вы хотите выполнить команду над всеми файлами. Если ваша реализация find поддерживает ее (GNU, BSD, BusyBox), используйте []-mindepth[] и []-maxdepth[], чтобы перечислить только записи в текущих каталогах (с добавлением []./[]). Используйте []! -имя .*'[], чтобы пропустить файлы точек (если вы действительно хотите их пропустить).[

] [

find . -mindepth 1 -maxdepth 1 ! -type d -exec somecommand {} +

] [

] Если вы можете предположить, что POSIX [] find[], используйте []-prune[], чтобы избежать повторения. [

] [

find . -name . -o -type d -prune -o -exec somecommand {} +

] [

] Если вы хотите вставить вывод []find[] в переменную массива, остерегайтесь, что при разборе вывода []find[] требуются дополнительные предположения об имени файла. Лучше использовать цикл.[

] [

]В zsh можно использовать []glob-квалификаторы[]: []*(^/)[], или []*(...)[], чтобы соответствовать только обычным файлам.[

].

1
11.02.2015, 22:03
1 ответ

Можно использовать ссылки в /dev/disk/by-id :

[root@krxl02cn05 by-id]# pwd
/dev/disk/by-id

[root@krxl02cn05 by-id]# ls -rtl
total 0
lrwxrwxrwx 1 root root  9 Feb 12 01:40 scsi-3600605b005d8655019aa31faf0812bae -> ../../sda
lrwxrwxrwx 1 root root 10 Feb 12 01:40 scsi-3600605b005d8655019aa31faf0812bae-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Feb 12 01:40 scsi-3600605b005d8655019aa31faf0812bae-part1 -> ../../sda1
lrwxrwxrwx 1 root root  9 Feb 12 01:50 scsi-3600144f09a214698000054db88550008 -> ../../sdd
lrwxrwxrwx 1 root root  9 Feb 12 01:50 scsi-3600144f09a214698000054db88460007 -> ../../sdc
lrwxrwxrwx 1 root root  9 Feb 12 01:50 scsi-3600144f09a214698000054db88260006 -> ../../sdb
lrwxrwxrwx 1 root root 10 Feb 12 01:54 scsi-3600144f09a214698000054db88260006-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 15 Feb 12 04:56 scsi-3600144f09a214698000054db88460007-part1 -> ../../asm-disk1
lrwxrwxrwx 1 root root 15 Feb 12 04:59 scsi-3600144f09a214698000054db88550008-part1 -> ../../asm-disk2

Таким образом, scsi id /dev/sdc имеет значение 3600144f09a214698000054db88460007

-121--67480-

Я не уверен af Компьютер работает как маршрутизатор NAT для виртуальных машин, поэтому он должен управлять пересылкой портов и трансляцией адресов, среди прочего.

Одним из способов устранения этих проблем может быть использование мостовых сетей. Вместо предусматривать адресов ваш компьютер использует ряд трюков для совместного использования вашей сетевой карты между виртуальными и реальными машинами. Каждый из них имеет свой собственный IP-адрес в сети через одно физическое соединение.

У VirtityBox, Parallels и большинства продуктов VMware (Fusion, Player и т.д.) есть возможность включить мостовые сети.

-121--229999-

Вы каждый раз пересчитываете длину списка. Кроме того, раскройте выражения .

proc pSampleWithReplace {list samplesize} {
    set v_val [list]   ;# you know it's a list, so create it as a list
    set lmax [expr {[llength $list] - 1}]
    for {set j 0} {$j < $samplesize} {incr j} {
        lappend v_val [lindex $list [expr {round(rand() * $lmax)}]]
    }
    return $v_val
}
2
27.01.2020, 23:37

Теги

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