Используйте 'dd' для вырезания части конца файла

Возможно, я пропускаю что-то очевидное, но....

На моем kde (4.4.5 - kubuntu ясный) панель, я нажимаю на орех кешью в конце. Когда я делаю, это поднимает меню для настройки панели. В то время как то меню открыто, я могу использовать мышь для перетаскивания любого из моих значков приложения к новому местоположению на панели.

Это делает то, что Вы хотите?

Кажется, существует ограничение на основе размера самих значков. Маленькие все кластеризируются вместе в быстрой области запуска, но могут быть перемещены между собой.

В меню существует кнопка значков блокировки, но я не знаю то, что это делает.

18
28.02.2012, 15:03
2 ответа

Ну, принятие Вас имеет stat и bash, можно получить размер файла с:

stat -c %s your_file

Если Вы хотите извлечь последнее $amount байты для того файла с dd, Вы могли:

dd if=your_file of=extracted_part \
   bs=1 count=$amount \
   skip=$(( $(stat -c %s your_file) - $amount ))

Но более нормальный подход должен был бы использовать tail:

tail -c $(( 1024*1024 )) your_file > target_file
29
27.01.2020, 19:45
dd --help
Usage: dd [OPERAND]...
  or:  dd OPTION
Copy a file, converting and formatting according to the operands.

  bs=BYTES        read and write BYTES bytes at a time (also see ibs=,obs=)
  cbs=BYTES       convert BYTES bytes at a time
  conv=CONVS      convert the file as per the comma separated symbol list
  count=BLOCKS    copy only BLOCKS input blocks
  ibs=BYTES       read BYTES bytes at a time (default: 512)
  if=FILE         read from FILE instead of stdin
  iflag=FLAGS     read as per the comma separated symbol list
  obs=BYTES       write BYTES bytes at a time (default: 512)
  of=FILE         write to FILE instead of stdout
  oflag=FLAGS     write as per the comma separated symbol list
  seek=BLOCKS     skip BLOCKS obs-sized blocks at start of output
  skip=BLOCKS     skip BLOCKS ibs-sized blocks at start of input
  status=noxfer   suppress transfer statistics

BLOCKS and BYTES may be followed by the following multiplicative suffixes:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.

Если размер файла будет точно 10 МБ, 1024*10 10240K, то Это оставит последний 1024K. Необходимо указать размер блока, Вы работаете с использованием ibs и obs опций.

1M = 1024K 
1024*9 = 9216  
dd if=/10/MB/file of=/9/MB/file count=9216K ibs=1K obs=1K
dd if=/10/MB/file of=/9/MB/file count=9M ibs=1M obs=1M

Можно также пропустить первый 1 МБ файла, с помощью опции пропуска читать в конец файла, пропускающего первый 1 МБ.

dd if=/10/MB/file of=/9/MB/file skip=1M ibs=1M obs=1M

Используя искать опцию можно записать в определенное место в выходном файле. Скажите, что Вы хотите сохранить первый 1 МБ и по записи последние 8 МБ.

dd if=/10/MB/file of=/9/MB/file skip=1M seek=1M count=8M ibs=1M obs=1M

Вероятно, необходимо заставить некоторые детали о размере файла удостоверяться, что Вы вкладываете правильный объем данных и.

ls -s --block-size 1K ./my/10MB/file
man ls

       --block-size=SIZE
              use SIZE-byte blocks.  See SIZE format below

       -s, --size
              print the allocated size of each file, in blocks

       SIZE  may  be (or may be an integer optionally followed by) one of fol‐
       lowing: KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T,
       P, E, Z, Y.
5
27.01.2020, 19:45

Теги

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