Используйте/Видьте целый пространство флэш-памяти

Вы можете сделать это в чистом виде Массивы:

#!/usr/bin/env bash

## Declare the various arrays we will be using
declare -A hasfeat;
declare -A names;
declare -A features;
## The input file
file="/path/to/file"

## The awk is used to skip the first line, the header
awk 'NR>1' "$file" |
    {
        while read name feat;
        do
            ## Save the names
            names[$name]=1;
            ## Save the features
            features[$feat]=1;
            ## Save this name/feature combination
            hasfeat[$name,$feat]=1;
        done
        ## For each name in the file
        for name in ${!names[@]}
        do
            ## For each feature in the file
            for feat in ${!features[@]}
            do
                ## Print the name if it doesn't have this feature
                [ -z ${array[$name,$feat]} ] && echo $name lacks $feat
            done
        done;
    }

или, гораздо более кратко, в Perl:

$ perl -lane 'if($.>1){$l{$F[1]}++;$k{$F[0]}{$F[1]}++}
  END{foreach $f (keys(%l)){ 
    map{print "$_ lacks $f" unless $k{$_}{$f}}keys(%k)
    }}' file
0
04.08.2014, 15:41
2 ответа

Производитель продал вам флешку USB 2 Гб в виде 2 Гигабайт, что означает 2000000000 байт. Ваш компьютер показывает флешку в единицах гигабайт. 1 Гигабайт - это 1024 х 1024 х 1024 байта, то есть 1073741824 байта.

Если разделить 2000000000 на 1073741824, то получится 1,86264514923095703125 или, округленно до двух знаков после запятой, 1,86 Гб.

Другими словами, 2 Гб = 1. 86 Гигабайт

Компьютеры обычно работают с гигабайтами, так как они кратные 2 (1 гигабайт = 2^30), в то время как люди (и производители дисков [которые в конце концов являются людьми]) работают с гигабайтами, так как они кратные 10 (1 гигабайт = 10^9)

.
3
28.01.2020, 02:28

Разница заключается в пространстве, используемом файловой системой. Имеется пространство как для метаданных, так и для внутренней структуры файловой системы. Это справедливо практически для всех файловых систем, независимо от того, являются ли они файловыми системами Windows или Linux.

На linux устройства хранения, такие как ваш ssd, рассматриваются как блочные устройства, и есть команда 'dd', которая обращается ко всем блочным устройствам; вы можете использовать 'dd', чтобы скопировать все содержимое флешки объемом 2 ГБ в файл объемом 2 ГБ на другом устройстве хранения, если вы хотите. Вы также можете использовать dd, чтобы скопировать его обратно на другое устройство такого же размера.

Однако вы никогда не сможете использовать весь 2ГБ в практическом смысле, так как обычно вы получаете доступ к информации через файловую систему, и все это требует больших затрат.

Если вы заинтересованы в этом, есть много информации о файловых системах и команде 'dd' в интернете. Поиграйте.

0
28.01.2020, 02:28

Теги

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