Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 1. File System - Файловая cистема
copy | deblank | delete | deltree | filefind | filetime | fixfile | index | list | mkdir | name | olist | partcopy | rename | setbytes | space | sync | touch | treesize |


Help:   Рус   |   Eng        Refer:   Рус   |   Eng  

Команда: delete

Как удалить файлы в дереве каталогов с гибким синтаксисом выбора файлов

sfk delete dir ext1 [ext2 ...] [-yes]

sfk deltree targetdir [-yes]

sfk del -dir dir1 dir2 -file .ext1

Удалять файлы или каталоги, даже если они защищены от записи.
deltree или rmtree удаляет дерево каталогов со всем содержимым

ПАРАМЕТРЫ

-yes - реально удалить файлы. Без опции -yes, del только показывает список файлов, которые будут удалены.

-withdirs или -wdir

Если вы укажете маску файла, отличную от «*», и удаление файла приведет к созданию пустого каталога, то каталог также будет удален. Если вы не укажете маску файла (или «*»), каждый пустой каталог всегда будет удален. Эту опцию нельзя использовать с цепочкой, поскольку при цепочке передаются только имена файлов, но не обработанные имена каталогов.

-hidden - включить скрытые и системные файлы.
Эта опция используется по умолчанию при использовании Deltree.

-quiet - ничего не печатать

-stat - показывать статистику даже с -quiet

-stoponerr - остановить выполнение цепочки, если удаление не завершено.

-retry=n[:d] - если удаление не удалось, повторите попытку до n раз, ожидая между ними d мс. По умолчанию для deltree (не del) используется -retry=2:100.

Код возврата:

  • 0 : ОК все удалено
  • 5 : удаление незавершено
  • 9 : команда с параметром -stoponerr

    Ленивое подтверждение цепочки команд.

    Если вы выбрали файлы в цепочке команд и хотите добавить +del, вы можете ввести «+del». (с точкой) или «+del!» (только для Windows) вместо «+del -yes», чтобы фактически удалить файлы.

    ПРИМЕРЫ

      sfk del -withdirs src .bak Удаляет файлы .bak в src и всех подкаталогах.
      Если каталог содержал только файлы .bak, он также удаляется

      sfk del -yes -withdirs -hidden tmp Удалите TMP со всеми файлами, включая скрытые файлы

      sfk deltree. tmp То же самое, что и выше, с "." в качестве сокращения от -yes

      sfk list -dir src -file foo*.hpp +del Сначала выводится список целевых файлов, затем добавляется +del

      sfk fromclip +del Возьмите список имен файлов из буфера обмена и удалите их.
      Смотрите "sfk help shell" для того, чтобы узнать, как настроить командную строку Windows, чтобы можно было легко копировать списки имен файлов.

    Примеры с выводом

    Требуется удалить все файлы .bak в дереве каталогов "src1" и все файлы .tmp в дереве каталогов "src2":

    sfk del -dir src1 -file .bak -dir src2 -file .tmp

    Симуляция:

    [simulating:]
          DEL : src1\FooBank\BarDriver\include\BarGlass.bak
          DEL : src1\FooBank\BarDriver\include\BarMug.bak
          DEL : src1\FooBank\DB\include\DBController.bak
          DEL : src1\FooBank\GUI\include\FooGUI.bak
          DEL : src2\FooBank\BarDriver\include\BarGlass.tmp
          DEL : src2\FooBank\BarDriver\include\BarMug.tmp
          DEL : src2\FooBank\DB\include\DBController.tmp
          DEL : src2\FooBank\GUI\include\FooGUI.tmp
          10 files would be deleted.
          [say -yes, -del. or -del! to execute.]
     

    Но мы обнаружили, что нужно сохранить DBController.bak, так как он может понадобиться позже... то же самое относится и к FooGUI.tmp. Нет проблем — выше приведена лишь симуляция, поэтому пока ничего не произошло.

    Теперь мы изменяем команду для их сохранения от удаления:

    sfk del -dir src1 -file .bak !DBCon -dir src2 -file .tmp !FooGUI

          [simulating:]
          DEL : src1\FooBank\BarDriver\include\BarGlass.bak
          DEL : src1\FooBank\BarDriver\include\BarMug.bak
          DEL : src1\FooBank\GUI\include\FooGUI.bak
          DEL : src2\FooBank\BarDriver\include\BarGlass.tmp
          DEL : src2\FooBank\BarDriver\include\BarMug.tmp
          DEL : src2\FooBank\DB\include\DBController.tmp
          8 files would be deleted.
          [say -yes, -del. or -del! to execute.]
    

    Результат выглядит нормально, поэтому можно добавить -yes, чтобы реально удалить файлы.